防止反编译
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" 淹没,但这是浪费时间。
- 反混淆器一直在变得更好。
- 如果有人非常想要你的代码,无论你做什么他们都会得到它。
- 坦率地说,如果您问这个问题,那么您编写的代码不值得花时间来保护它。
我在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" 淹没,但这是浪费时间。
- 反混淆器一直在变得更好。
- 如果有人非常想要你的代码,无论你做什么他们都会得到它。
- 坦率地说,如果您问这个问题,那么您编写的代码不值得花时间来保护它。