如何防止Unity3D代码被反编译?

发表于2017-01-22
评论1 2.9k浏览
  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中没有逻辑代码,所以无需操心);

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引