Dotnet DLL的反编译和修改代码



我需要更改. net DLL的代码。我可以看到代码编译DLL与。net反射器,但我不能改变DLL的代码。使用。net Reflector,我反编译代码并保存在我的硬盘上,但是当我能够重新编译代码时,它给出了错误。

很少代码以二进制格式反编译很少代码用c#反编译。有什么工具可以改变和重新编译DLL吗?

下面是我用来尝试反编译DLL的工具:

  • ILSpy
  • DisSharp
  • Reflector7.1与Reflexil插件
  • Spices.Net.Suite.5.8
  • 部署。net 1.0.0
  • devextras.codereflect
  • dotPeek-1.0.0.2545
  • intellilock
  • JustDecompile_BETA_2011.1.728.1

不幸的是,没有一个工具提供完美的源代码来重新编译DLL代码。

下面的代码可以运行:

"C:Program Files (x86)Microsoft SDKsWindowsv7.0ABinildasm.exe" original.dll /out=code.asm
echo Here changes to code.asm should be done.
C:WindowsMicrosoft.NETFrameworkv4.0.30319ilasm.exe /dll code.asm

因此,如果代码中的更改很小,则可以直接在汇编代码中进行更改。可以编译和反汇编简单的方法,以查看汇编代码应该是什么样子。在程序集文件中添加其他方法也不应该太难。

当然,代码分析应该使用类似ilspy的工具,显示源代码而不是汇编代码。

这里使用的工具来自Windows SDK (ildasm)和。net framework (ilasm)。

我在重新编译dll方面取得了有限的成功。一个更好的方法是使用Reflector和Reflexil插件。您需要对组成。net程序集的IL代码有更好的了解,但是Reflexil在描述OP代码方面做得很好。我在我的博客上简要介绍了我是如何修改PowerShell Cmdlet帮助编辑器的:http://csharpening.net/?p=348

最新更新