如何防止代码被反编译

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止代码被反编译相关的知识,希望对你有一定的参考价值。

参考技术A 由于apk是android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。完全避免是不可能的,总有人能够破解你的代码。但是有几种方式来提高被反编译取代码的难度。
1 关键代码使用jni调用本地代码,用c或者c++编写,因此相对比较难于反编译
2 混淆java代码。混淆是不改变代码逻辑的情况下,增加无用代码,或者重命名,使反编译后的源代码难于看懂。 网上开源的java代码混淆工具较多,一般是用ant的方式来编译的。

如何防止Unity3D代码被反编译

根本的解决办法是:先对DLL加密,然后在Unity的源码中加载程序DLL之前进行解密。

这就需要通过逆向工程获得相应的Unity源码或者是直接向Unity购买Source Code License。
参考技术A 在Unity3D中,代码会编译到Assembly-CSharp.dll。基于以上两点,代码的保护有以下两种:
第一种是对代码进行混淆,诸如混淆软件CodeGuard、CryptoObfuscator、de4dot
第二种是对Assembly-CSharp.dll进行加密后,重新对mono进行编译。。
Virbox Protector可对Assembly-CSharp.dll直接进行加壳后,无需手动编译mono,能防止反编译

以上是关于如何防止代码被反编译的主要内容,如果未能解决你的问题,请参考以下文章

如何防止Android程序被反编译

如何防止Unity3D代码被反编译

如何防止Unity3D代码被反编译

如何防止Unity3D代码被反编译

如何有效的防止Java程序被反编译和破解

Java jar 如何防止被反编译?代码写的太烂,害怕被人发现