‘壹’ 如何防止unity3d代码被反编译
防止Unity3D代码被反编译是手游安全中常见的破解风险。Unity的破解风险主要体现在Unity mono脚本解密、Unity il2cpp脚本解析、Assetbundle资源篡改三项。mono脚本文件的二进制形式及源码转换图示,展示了如何对mono脚本进行解密。Il2cpp脚本解析则需要使用Il2CppDumper工具,解析后能获得类名、函数名以及对应偏移信息。尽管iOS中还无法解析为源码,但Android的有效脚本加密对于防止破解尤为重要。Assetbundle资源篡改,如修改材质属性,可实现透视效果,同时还有资源被竞品盗取、分析的风险。存档数据被修改也是安全问题,如果数据不进行服务端校验或为单机游戏,游戏属性修改风险巨大。保护Unity安全时,自研保护系统面临高成本、兼容性问题、对抗破解的持续升级和第三方服务兼容性挑战。网易云易盾提供了Unity mono DLL脚本加密、IL2CPP加密、Assetbundle加密等解决方案,通过修改或HOOK mono_image_open_from_data_with_name函数,实现对CSharp DLL脚本的加密,以防止其被解密。Unity mono DLL脚本加密经历了从直接文件加密到抹掉PE头、再到方法级加密的三代技术演进。IL2CPP加密则需结合global-metadata.dat文件内的符号信息进行解析,通过SO加壳保护libil2cpp.so来实现。Assetbundle加密后,Unity Studio无法解析资源。网易易盾保护方案特点包括纯Native保护、对引擎SO做加壳、兼容性和稳定性高、性能影响小,支持多平台加固。在选择保护方案时,应考虑DEX加壳的兼容性和安全性问题,而网易易盾提供的纯Native保护方案为手游提供了一种更加安全和兼容性强的解决方案。
‘贰’ 请问怎样将.Net程序反编译为一个VS工程,可以正常运行调试
vs编写程序是以项目为单位的(对小程序很不适合)。第一步是建里一个项目第二部是添加源代码文件(.cpp)和头文件(.h)在打开的空白文档写代码按F5或者点击面板上的启动本地调试器添加源代码文件的方法可以按快捷键也可以用下面的方法:在屏幕的左侧或者右侧有一个解决方案管理器,右点源文件-》添加-》新建项-》.cpp文件-》输入文件名-》确定。
‘叁’ 如何把EXE文件转化为CPP(C++)的文件并能让编译器读取出来(无源文件)
1、这是反汇编问题,早期能反汇编成汇编语言指令,但不能100%实现,现在不知道能到什么情况
2、您的问题是要反编译成C程序清单,个人认为无法实现,因为:首先不能确定您的EXE文件是用C语言开发的;其次,即使用C语言写的,也不知道用哪个版本写的,除非C语言开发系统本身有这种反编译功能;
3、有人在说明生成EXE文件的优点时,常把不能反编译成程序代码,进而防止别人盗取程序代码作为优点来列出
以上仅供参考
‘肆’ 如何将已经打包好的unity游戏反编译为工程文件夹(不是提取资源,是直接反编译成能用的工程文件夹)
首先想通过此方法完全复刻一个游戏工程,这是不可能的 不要想了
对于反编译脚本的话
1、基于il2cpp编译的 目前来说虽然可以 但是对于新手还是有点困难的
2、基于mono编译的 可以把dll文件推到反编译软件比如ilspy即可