修改C#动态链接库

来源:互联网 发布:js 数组合并去重 编辑:程序博客网 时间:2024/05/21 11:15

有时候我们有一个动态链接库,却找不到开发者,或者找不到以前的源代码了,而只要修改一个变量,就能使其适应新的环境;这种情况确实挺无奈的。C#编译的动态链接库其实可以试着修改的,前提是知道该修改什么

  1. 首先准备ildasm.exe;ilasm.exe;ILSpy.exe3个程序
    ildasm.exe在目录:
    c:\Program Files(x86)\Microsoft SDKs\Windows\v6.0A\bin下
    ilasm.exe 在目录:
    c:\windows\microsoft.NET\framework\v2.0.50727\ 下
    ILSpy.exe从网上下载。

  2. 用ILSpy查看需要修改的类的位置
    ILSpy导入对应的DLL文件,找到需要修改的类。

  3. 打开DLL文件把dll文件导入到ildasm工具中。在ildasm中File->dump,把dll文件转储为*.il文件存到某个指定文件夹里,得到*.il和*.res两个文件,有时也会有*.resource文件,有时候又没有*.res文件。

  4. 修改对应代码
    打开得到的*.il文件,找到对应的类或者方法,进行修改(如果修改的代码太多,那则需要先学习一下“C#反编译之IL语法”),具体情况具体分析,修改之后保存。

  5. 重新编译DLL
    打开命令提示符,进入到*.il的文件夹,然后输入如下命令:
    c:\windows\microsoft.NET\framework\v2.0.50727\ilasm.exe /dll/resource=a.res a.il
    (注意a.res和a.il两文件夹位置不可变),测试可用。
    或者
    c:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe
    a.il /output=a.dll /dll
    然后回车,就在对应目录下生成新的dll文件。

  6. 通过ILSpy重新查看修改后的位置
    ILSpy导入DLL,找到对应的类。

原创粉丝点击