如何防止unity3d代码被反编译

author author     2023-05-02     389

关键词:

加密原理(无需Unity源码):
1. IDA Pro打开libmono.so, 修改mono_image_open_from_data_with_name为
mono_image_open_from_data_with_name_0,
2. 替换实现mono_image_open_from_data_with_name,
extern mono_image_open_from_data_with_name_0(...);
mono_image_open_from_data_with_name(...)
MonoImage *img = mono_image_open_from_data_with_name_0(...);
//发现数据文件头不是DLL前缀则解密 img->raw_data, 相应修改img->raw_data_len
return img;

3. 重新打包libmono.so; 替换Unity3D中的android下的版本.
4. 另外写个加密的工具,植入构建环境(MonoDeveloper或VS,添加一个打包后Build Phase来加密DLL); (IOS下禁用JIT固采用AOT编译,DLL中没有逻辑代码,所以无需操心);
从AndroidManifest.xml中可以看出,腾讯的改造应该是修改并替换了入口的classes.dex,把以前的入口 UnityPlayerProxyActivity替换为com.tencent.tauth.AuthActivity. 然后去加载了自定义的几个so: libNativeRQD.so. 周全考虑,为了防止第三方委托libmono去做解密而做了防护措施. 具体实现我还没做深入分析, 应该也是老套路.
libmono.so中的mono_image_open_from_data_with_name也被替换成了mono_image_open_from_data_with_name_0.
解密(android):
方法一: ROOT android系统(最好是一部手机,别搞模拟器,慢死), 挂载LD_PRELOAD的API hook来实现.
方法二: 内存特征码提取,简单高效无敌; 机器能读,你就能读;
参考技术A 根本的解决办法是:先对DLL加密,然后在Unity的源码中加载程序DLL之前进行解密。 这就需要通过逆向工程获得相应的Unity源码或者是直接向Unity购买Source Code License。本回答被提问者采纳

如何防止unity3d代码被反编译

...a,相应修改img->raw_data_lenreturnimg;3.重新打包libmono.so;替换Unity3D中的android下的版本.4.另外写个加密的工具,植入构建环境(MonoDeveloper或VS,添加一个打包后BuildPhase来加密DLL);(IOS下禁用JIT固采用AOT编译,DLL中没有逻辑代码,所以无... 查看详情

如何防止unity3d代码被反编译

...a,相应修改img->raw_data_lenreturnimg;3.重新打包libmono.so;替换Unity3D中的android下的版本.4.另外写个加密的工具,植入构建环境(MonoDeveloper或VS,添加一个打包后BuildPhase来加密DLL);(IOS下禁用JIT固采用AOT编译,DLL中没有逻辑代码,所以无... 查看详情

unity3d加密外壳如何做到防止反编译?

各位Unity3D的开发者,你还为你的代码被反编译而头疼,混淆和加密已经失效,为内存dump代码而烦恼?是否辛苦制作的游戏被盗版被抄袭而烦恼?是否害怕算法被别人参考要把算法写成C++而费劲周折? 快来使用深思数盾外壳保... 查看详情

如何防止代码被反编译

参考技术A由于apk是Android虚拟机加载的,它有一定的规范,加密apk后Dalvik无法识别apk了。完全避免是不可能的,总有人能够破解你的代码。但是有几种方式来提高被反编译取代码的难度。1关键代码使用jni调用本地代码,用c或者c+... 查看详情

如何防止android程序被反编译

参考技术A  360加固,或者梆梆加固,不过我还是推荐360。如果你用别的加固,就不能在360应用市场上传app,只能用360的才能在360手机助手中上传应用。用360加固,别的市场都能上传应用。  顺便推荐一款学习android... 查看详情

实用:如何防止你的jar被反编译?

点击关注公众号,实用技术文章及时了解Java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知... 查看详情

javajar如何防止被反编译?代码写的太烂,害怕被人发现(代码片段)

java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!之所以会对java的反编译感兴... 查看详情

面试官:如何防止java源码被反编译?我竟然答不上来。。

来源博客:https://www.cnblogs.com/dartagnan/面试官:如何防止Java源码被反编译?我竟然答不上来。。java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在... 查看详情

javajar如何防止被反编译?代码写的太烂,害怕被人发现(代码片段)

点击上方“朱小厮的博客”,选择“设为星标”后台回复"书",获取后台回复“k8s”,可领取k8s资料java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编... 查看详情

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

java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施存在。今天就拜读了一篇相关的文章,受益匪浅,知彼知己嘛!!之所以会对java的反编译感兴... 查看详情

如何防止你的jar被反编译?

作者:dartagnan来源:cnblogs.com/dartagnan/archive/2011/03/24/2003434.htmlHollis的新书限时折扣中,一本深入讲解Java基础的干货笔记!Java作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译ÿ... 查看详情

如何防止你的jar被反编译?

相关阅读:2T架构师学习资料干货分享作者:dartagnan来源:cnblogs.com/dartagnan/archive/2011/03/24/2003434.htmlJava作为解释型的语言,其高度抽象的特性意味其很容易被反编译,容易被反编译,自然有防止反编译措施... 查看详情

如何保护解密密钥不被反编译?

】如何保护解密密钥不被反编译?【英文标题】:Howtoprotectdecryptionkeyfromdecompilation?【发布时间】:2011-08-2912:28:54【问题描述】:我是一名初学Java程序员。我正在开发一个解密一些数据的应用程序。解密密钥被硬编码到软件中,... 查看详情

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

由于Java字节码的抽象级别较高,因此它们较容易被反编译。下面介绍了几种常用的方法,用于保护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使... 查看详情

反编译androidapk及防止apk程序被反编译

原文出处 反编译AndroidAPK及防止APK程序被反编译怎么逆向工程对AndroidApk进行反编译googleAndroid开发是开源的,开发过程中有些时候会遇到一些功能,自己不知道该怎么做,然而别的软件里面已经有了,这个时候可以采用反编译... 查看详情

一些防止java代码被反编译的方法

...护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。隔离Java程序最简单的方法就是让用户不能够访问到JavaClass程序,... 查看详情

面试被问|防止java代码被反编译的方法有几种?

...护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。隔离Java程序最简单的方法就是让用户不能够访问到JavaClass程序,... 查看详情

面试被问|防止java代码被反编译的方法有几种?

...护Java字节码不被反编译。通常,这些方法不能够绝对防止程序被反编译,而是加大反编译的难度而已,因为这些方法都有自己的使用环境和弱点。隔离Java程序最简单的方法就是让用户不能够访问到JavaClass程序,... 查看详情