防止反编译

Prevent Decompiling

我在visual studio 2017 .net c# 中制作了一个PC 应用程序并将其编译为一个exe。然后我认为我的代码是安全的,没有人可以看到它,因为它是编译过的,但是当我在.net reflector 之类的程序中打开 exe 时,我可以看到源代码。

有什么办法可以防止这种情况发生吗?或者保护我不被反编译??

你不能阻止反编译,如果你编译成 MSIL (intermediate language). In such case you need to use obfuscation

有关该主题的更深入讨论,请查看此 post .NET obfuscation tools/strategy

你可以在这里找到类似的讨论How can I obfuscate my c# code, so it can't be deobfuscated so easily?

您还可以选择使用 Ngen.exe 为特定平台生成本机映像 - 这将绕过 IL 并生成编译后的处理器特定机器代码,从反向的角度来看,它非常安全 -工程学。

使用 IL 是一种非常常见的设计选择 - 它有缺点也有优点 - 主要缺点是 更容易在一个平台和多个目标平台上支持多种语言 ,即跨平台

要了解使用 IL 的一些好处 - 检查这个 - Whosebug。com/questions/1926386/…

Java也使用中间语言——java字节码——javaworld.com/article/2077233/core-java/bytecode-basics.html

尝试这个真的没有意义。

虽然您会被 "obfuscation" 淹没,但这是浪费时间。

  • 反混淆器一直在变得更好。
  • 如果有人非常想要你的代码,无论你做什么他们都会得到它。
  • 坦率地说,如果您问这个问题,那么您编写的代码不值得花时间来保护它。