我在visual studio 2017 .net c#中制作了一个PC应用程序并将其编译为exe。然后我认为我的代码是安全的,没有人能看到它,因为它是编译的,但是当我在.net反射器这样的程序中打开exe时,我可以看到源代码。
有什么办法可以阻止吗?或者保护我免受反编译?
答案 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)
尝试这一点真的没有意义。
虽然你会被“混淆”所淹没,但这是浪费时间。