如何防止Unity3D代码被反编译?
发表于2017-01-22
Unity3D游戏如何防止代码和资源的泄露,让游戏开发人员无法反编译,相信是很多游戏开发者想知道的,为此下面就给大家介绍下Unity3D代码无法被反编译的方法,一起来看看吧。
加密原理(无需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中没有逻辑代码,所以无需操心);