防止反编译

时间:2017-08-06 09:04:44

标签: c# .net decompiling decompiler

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

有什么办法可以阻止吗?或者保护我免受反编译?

2 个答案:

答案 0 :(得分:1)

如果编译成MSIL(中间语言),则无法阻止反编译。在这种情况下,您需要使用obfuscation

如需深入讨论此主题,请查看此帖.NET obfuscation tools/strategy

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

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

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

要了解使用IL的一些好处 - 请查看 - stackoverflow.com/questions/1926386 / ...

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

答案 1 :(得分:1)

尝试这一点真的没有意义。

虽然你会被“混淆”所淹没,但这是浪费时间。

  • 反混淆者一直在变得越来越好。
  • 如果有人希望你的代码足够糟糕,无论你做什么,他们都会得到它。
  • 坦率地说,如果您提出这个问题,那么您编写的代码就不值得花时间来保护它。