反编译DLL并修改后再生成DLL

反编译DLL并修改后再生成DLL需求 有些 Dll 文件我们找不到源码 只有编译后的 dll 但是我们想要改某个字段或者连接字符串 并不需要动太多业务逻辑的情况下 我们可以这样干 1 打开微软提供的反编译工具 ildasm exe 这个工具是 windows 自带的反编译工具 路径 C ProgramFiles x86 MicrosoftSDK Windows v10 0A bin NETFX4 6 2Tools 可以根据需要 选择对应工具版本 一般随便选一个版本都是可以的了 比如 我选择的是 4 6

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

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

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

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

反编译DLL并修改后再生成DLL 

 

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

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

反编译DLL并修改后再生成DLL

 

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

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

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL

 

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

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

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

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

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL

 

 8.选中上面路径

反编译DLL并修改后再生成DLL

 

9.输入CMD,回车。

反编译DLL并修改后再生成DLL

 

 

 11.输入以下命令:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilam.exe /dll/resourece=YG2.res YG2.il

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL 

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

反编译DLL并修改后再生成DLL

 

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

反编译DLL并修改后再生成DLL 

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

反编译DLL并修改后再生成DLL

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

反编译DLL并修改后再生成DLL

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

 反编译DLL并修改后再生成DLL

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

反编译DLL并修改后再生成DLL

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

反编译DLL并修改后再生成DLL 

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

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

(0)
上一篇 2026年3月19日 下午5:37
下一篇 2026年3月19日 下午5:37


相关推荐

  • pytorch tensor转int_numpy和pytorch

    pytorch tensor转int_numpy和pytorchtensor转换为numpy采用.numpy()函数即可a=torch.tensor([1,2,3])print(a)print(type(a))print(a.dtype)b=a.numpy()print(b)print(type(b))print(b.dtype)输出:torch.tensor整数默认为int64即LongTensor小数默认为float32不过一般对tensor采用tensor.data()或者tensor.detach(

    2022年10月9日
    6
  • oracle 创建emp表,dept表

    oracle 创建emp表,dept表废话不多说直接上SQL/*创建empz表*/CREATETABLEEMP(EMPNONUMBER(4)NOTNULL,ENAMEVARCHAR2(10),JOBVARCHAR2(9),MGRNUMBER(4),HIREDATEDATE,SALNUMBER(7,2),COMMNUMBER(7,2),DEPTNONUMBER(2));/*emp表添加数据*/INSERTINTOEMPVALUES(7369,’SMITH’,’CLE..

    2022年5月12日
    59
  • 一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】「建议收藏」

    一文搞懂什么是粒子群优化算法(Particle Swarm Optimization,PSO)【附应用举例】「建议收藏」粒子群优化算法1.1粒子群优化算法简介粒子群优化算法(ParticleSwarmOptimization,PSO)是进化计算的一个分支,是一种模拟自然界的生物活动的随机搜索算法。PSO模拟了自然界鸟群捕食和鱼群捕食的过程。通过群体中的协作寻找到问题的全局最优解。它是1995年由美国学者Eberhart和Kennedy提出的,现在已经广泛应用于各种工程领域的优化问题之中。1.1.1思想来源从动物界中的鸟群、兽群和鱼群等的迁移等群体活动而来。在群体活动中,群体中的每一个个体都会受益于所有成员在

    2022年10月11日
    5
  • PHP实现git部署的方法,可以学学!

    PHP实现git部署的方法,可以学学!

    2021年10月30日
    42
  • 理解几种常见的进程间通信方式

    理解几种常见的进程间通信方式什么是进程间通信广义上讲,进程间通信(Inter-ProcessCommunication,IPC)是指运行在不同进程(不论是否在同一台机器)中的若干线程间的数据交换。从上面的定义可以得出两点:参与通信的进程即可以运行在同一台机器上,也可以运行在各自的设备环境中(RemoteProcedureCallProtocol,RPC)。如果进程是跨机器运行的,则通常是由网络连接在一起。实现方

    2022年10月9日
    7
  • ICMP协议/IGMP协议详解

    ICMP协议/IGMP协议详解网际控制报文协议ICMP功能:ICMP允许主机或者路由器报告差多情况和提供有关异常情况的报告,它是网络层的协议,ICMP报文装在IP数据报中,作为其中的数据部分。ICMP报文的种类ICMP差错报文终点不可达源点抑制超时参数问题改变路由(重定向)ICMP询问报文回送请求和回答时间戳请求和回答ICMP应用举例ping(PacketInternetGroper)命令:该命令利用发送分

    2025年11月17日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号