首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >dotnet dll反编译和更改代码

dotnet dll反编译和更改代码
EN

Stack Overflow用户
提问于 2011-09-12 21:51:23
回答 2查看 31K关注 0票数 23

我需要更改.NET动态链接库的代码。我可以通过编译带有.NET反射器的动态链接库来查看代码,但我无法更改动态链接库的代码。使用.NET反射器,我反编译代码并保存到我的硬盘中,但当我能够重新编译代码时,它会给出错误。

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

以下是我尝试反编译DLL时使用的工具:

使用Reflexil plugin

  • Spices.Net.Suite.5.8

  • Deploy
  • ILSpy
  • DisSharp
  • Reflector7.1 1.0.0
  • devextras.codereflect
  • dotPeek-1.0.0.2545
  • intellilock
  • JustDecompile_BETA_2011.1.728.1

  • ILSpy
  • DisSharp
  • Reflector7.1

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

EN

回答 2

Stack Overflow用户

发布于 2014-09-09 19:04:16

以下代码正在运行:

代码语言:javascript
复制
"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe" original.dll /out=code.asm
echo Here changes to code.asm should be done.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe /dll code.asm

因此,如果代码中的更改很小,可以通过直接在汇编代码中进行更改来实现。人们可以编译和反汇编简单的方法,看看汇编代码应该是什么样子。将其他方法放入程序集文件中也不应该太难。

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

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

票数 10
EN

Stack Overflow用户

发布于 2011-09-12 21:56:16

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

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7388985

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档