我们可以将 .exe 或 .dll 反编译为 %100 吗?

逆向工程 反编译 反编译 反编译器 C#
2021-06-25 12:10:28
  1. 我们可以将 .exe 或 .dll 文件反编译为100%吗?有时似乎在某个地方(例如 mainfrm.cs)有些错误,我们该如何解决?
  2. 什么是最好的.NET 反编译器或者你更喜欢什么?

我想得到我的问题的答案。谢谢!...

1个回答

由于 .NET 语言的编译输出是MSIL,它本身具有很强的可读性,因此可以将其转换回(几乎)原始源代码。
有许多应用程序可以做到这一点。
我最喜欢的是dnSpy,因为它是免费的、开源的并且具有调试功能。AFAIK 它甚至可以尝试.sln从您的输入构建一个 Visual Studio 解决方案 ( ) 文件,这应该是您要查找的。

但是在某些情况下,编译过程中会丢失一些信息。
您必须手动修复这些错误。例如匿名函数很容易混淆反编译器。当然 - 如果开发人员试图保护他的应用程序,则有各种技术(例如混淆)会让您的生活更加艰难。

所以直接回答你的问题:

  1. 在大多数情况下,没有 100% 的Plug and Play解决方案。如果您想要一个可重新编译的项目,您将不得不自己修复一些问题。
  2. 由于best ..非常主观,这里有一些建议(排名不分先后):
    1. https://github.com/0xd4d/dnSpy(免费,开源)
    2. https://www.red-gate.com/products/dotnet-development/reflector/(付费)
    3. https://www.jetbrains.com/decompiler/(免费?)
    4. http://ilspy.net/(免费,开源)