首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >.dll反编译(反编译什么意思)

.dll反编译(反编译什么意思)

作者头像
全栈程序员站长
发布2022-07-28 11:33:11
发布2022-07-28 11:33:11
5.9K0
举报

大家好,又见面了,我是你们的朋友全栈君。

需求:有些Dll文件我们找不到源码,只有编译后的dll,但是我们想要改某个字段或者连接字符串,并不需要动太多业务逻辑的情况下,我们可以这样干。

1.打开微软提供的反编译工具ildasm.exe

这个工具是windows自带的反编译工具。

路径:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.2 Tools

可以根据需要,选择对应工具版本。一般随便选一个版本都是可以的了。

比如,我选择的是4.6.2版本的工具

2.把需要反编译的dll,放在桌面的一个新建文件夹中。

3.使用ildasm.exe打开该dll。

例如,我打开的是一个YG2的dll。然后选中YG2的dll

点击File->dump,弹出如下界面 ,点击OK

选择文件夹,填写文件名,文件名要跟原来的dll同名。

点击保存。就会生成.il和res两个资源文件

4.使用记事本打开.il,使用查找功能,定位到要修改的内容处。

5.修改完成后,点保存。

6.最后一步,把刚刚修改.il文件,重新生成新的dll。

这个也需要使用软件提供的一个工具 ilasm.exe

路径:C:\Windows\Microsoft.NET\Framework\v4.0.30319

7.在桌面打开已经修改好内容的.il 文件所在的文件夹

8.选中上面路径

9.输入CMD,回车。

10.这样可以快速使用cmd命令进入该文件夹

11.输入以下命令:

代码语言:javascript
复制
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilam.exe /dll/resourece=YG2.res YG2.il

后面的YG2.res YG2.il是保存文件的时候,起的文件名。

12.回车,如果显示不是内部命令,这个是少了权限。需要使用管理员的命令运行CMD,然后再重新使用 命令cd 路径 进入该文件夹。

13.例如,要windows左下角,输入cmd,选中cmd,右键,使用管理员命令打开

14.使用,我的文件夹在C盘,使用cd使用C盘根目录

15.使用最笨的方法,进入该文件夹

16.再输入以下命令,发现在还是不行,突然发现命令写错了。太粗心了。

17.回车之后,一般都生成新的dll在该文件夹下了。但是如果显示这样的,Could not open YG2.il

那就非常遗憾,生成失败了。如果能跟到这里,你们知道干开发是需要非常细心的,你看,我就犯了最低级的错误,目录下面其实是YG1.il,写成了YG2.il。资源英文还写错了。可见这英文水平…

18.接下面修正后,再次回车。显示成功了,对吧。

19.目录下面生成新的dll了。如果还不放心是否修改了内容。可以再使用反编译软件,查找是否有新修改的内容了。

20.搞了好多乌龙,这个就是一边操作,一边记录写的文章。原汁原味的找问题过程。如有其他问题,请各位C友留言。

文章参考:https://blog.csdn.net/lyflcear/article/details/8102057

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/128615.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年4月1,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档