`
kerlubasola
  • 浏览: 709569 次
文章分类
社区版块
存档分类
最新评论

操作步骤:用ildasm/ilasm修改IL代码

 
阅读更多

在开发中遇到这样一个场景,需要修改一个dll文件(.NET程序集)中某些地方的类型名称,但没有源代码,只能修改IL代码。

操作步骤如下:

1. 运行ildasm

ildasm是由微软提供的.NET程序反编译工具,位于“C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\”。

2. 用ildasm打开要修改的程序集,如下图:

3. 通过ildasm保存为IL文件

选择菜单File>Dump,选择UTF-8编码,如下图:

4. 用文本编辑器打开第3步中得到的.il文件,如下图:

5. 修改.il文件中的代码并保存

6. 用ilasm(MSIL汇编程序)将.il文件编译为.dll文件

ilasm位于相应的.NET Framework目录中,比如:C:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm.exe

在命令行中执行下面的命令:

ilasm 源文件.il /output=目标文件.dll /dll

7. 完成。

分享到:
评论

相关推荐

    Net反编译软件及操作教程 ilasm+ildasm

    - 如果需要,你可以对IL代码进行修改,然后使用`ilasm`将其重新编译回.dll文件。例如:`ilasm yourdll.il /dll /out=yourdll.dll`。 4. **注意**: - ILASM和ILDASM生成的代码并不总是可以直接读取的,因为它们...

    给第三方dll强签名

    - 使用`ilasm /dll /key=MyKeyPair.snk DecompiledDll.il`重新编译IL代码,这将创建一个带有强名称的新DLL。 4. **验证强名称**:最后,使用`sn -vf 新的Dll.dll`来验证强名称是否已成功添加。 需要注意的是,这...

    net生成的dll文件查看修改

    3. **重新编译为DLL**:修改完成后,使用.NET框架提供的另一个工具ilasm.exe将修改后的IL代码重新编译回DLL格式。这一步骤同样需要在命令行下完成,例如`ilasm example.il /dll /out:example.dll`。 ### 结论 查看...

    ildasm反编译工具

    这些IL指令随后可以用ilasm(IL Assembler)工具重新组装成原生的.NET程序集。 然而,值得注意的是,ildasm提供的反编译结果并不总是易于理解,尤其是对于复杂的代码和高级语言特性。因此,它通常与其他工具(如...

    编辑IL文件 修改DLL文件的方法

    在这个例子中,我们使用ILDASM(Intermediate Language Disassembler),这是.NET Framework自带的命令行工具,可以将DLL转换为IL代码和资源文件。 步骤如下: 1. 运行ILDASM,选择KS.Gantt.DLL文件进行反编译。这...

    IL语言培训资料

    这些文档对于编写和理解MSIL代码至关重要,尤其是当程序员需要查看或修改由.NET编译器产生的MSIL代码时。 MSIL代码中的打印字符串示例(PrintString)展示了如何使用MSIL指令来实现一个简单的功能,如在控制台输出...

    强名称如何引用非强名称

    - `ildasm.exe`和`ilasm.exe`是.NET框架提供的工具,用于反编译和编译中间语言(IL)代码。使用时应注意保持原始程序集的完整性和正确性。 - 在实际开发中,尽量避免使用非强名称程序集,尤其是在发布到生产环境的应用...

    .NET常用类的接口

    4. 使用`ILasm.exe`重新编译修改后的中间语言代码: ``` ILasm.exe NotObject.il /DLL ``` 通过以上步骤,我们可以创建一个不继承自`System.Object`的类型。虽然这种情况在实际开发中较为罕见,但它展示了.NET...

    .NET的DLL文件强命名后加入程序集缓存

    2. **反汇编DLL**:使用`ildasm.exe`(IL Disassembler)将DLL文件反汇编为中间语言(IL)文件,例如`SomeAssembly.il`,命令是`ildasm SomeAssembly.dll /out:SomeAssembly.il`。 3. **备份原始DLL**:为了安全起见...

    签名没有源码的DLL

    对于无源码的DLL,可以使用`ildasm.exe`(IL Disassembler)将DLL反编译为IL(中间语言),然后使用`ilasm.exe`(IL Assembler)重新编译,并在编译时插入公钥签名。 3. 使用`sn.exe`对DLL进行强签名,这一步需要...

    .net简易名程混淆工具源码

    开发者可能使用诸如ILDASM(Intermediate Language Disassembler)这样的工具来反编译.NET程序集,然后对其进行混淆处理,最后再用ILASM(Intermediate Language Assembler)重新打包。 源码混淆技术对于.NET开发者...

    利用C#进行AutoCAD的二次开发

    - 使用ilasm.exe重新编译修改后的IL代码,生成新的Interop.AutoCAD.dll。 - 将新生成的dll文件复制到指定目录下,确保应用程序能够正确引用。 #### 五、总结 通过本文的介绍可以看出,使用C#进行AutoCAD的二次...

    将.NET程序集转换为Silverlight程序集

    3. **工具使用**:有一些工具可以帮助进行转换,例如,ILMerge可以合并多个程序集,而Ildasm和Ilasm可以用来反编译和重新编译IL代码。 4. **第三方库兼容性**:如果项目中使用了第三方库,需要确保这些库也支持...

    C#微软培训资料

    18.2 在 C #代码中调用 C++和 VB 编写的组件 .240 18.3 版 本 控 制 .249 18.4 代 码 优 化 .252 18.5 小 结 .254 第五部分 附 录 .255 附录 A 关 键 字.255 附录 B 错 误 码.256 附录 C .Net 名字空间...

Global site tag (gtag.js) - Google Analytics