位置: 编程技术 - 正文
推荐整理分享如何防范unity代码被偷!(unity如何避免碰撞穿透),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:unity 防破解,unity中怎么避免内存泄漏,unity 防破解,unity如何避免穿墙,unity防止反编译,unity防止穿模,unity中怎么避免内存泄漏,unity防止穿模,内容如对您有帮助,希望把文章链接给更多的朋友!
解密无非就为了 修改游戏功能数据、提取游戏资源、加入自己想加的广告等等加密就是保护游戏资源不被恶意修改 关于Unity C#代码部分的加密,混淆,可以去搜索一下Codeguard这个插件,它可以防止你的代码被反编译。它主要是改名,把你的方法名,方法体名子修改了,变量名修改了。虽然有点弱但是它的优点是比较方便,因为可以在打包的时候自动完成代码混淆的工作。还有几个混淆插件CryptoObfuscator、de4dot可以用试一下,但有混淆就有反混淆(de4dot很厉害的)。 IOS其实不用做代码混淆,应该是苹果帮我们做了,反编译以后只能看到变量名,和方法名,但是具体的方法体内的代码是看不到的。Android是可以看到的。所以如果是想反编译的话怎么办?Unity编译后最终会将代码编译在dll里面,无论是ios还是Android解开包以后都可以拿到dll,路径在Data/Managed/Assembly-CSharp.dll去找它的Android版本(ios代码混淆了),然后解开包,拿出它的Assembly-CSharp.dll在Windows上去下载.NET Reflector 8这个反编译dll的软件(下载最新版本)。 把Assembly-CSharp直接拖进AssetbundleManager应该就是他们自己写的处理Assetbundle的下载管理类了。试一下搜索一下”http”关键字 可能找到CDN或者Assetbundle的下载地址。 除了混淆,我们也可以尝试其他的保护措施,比如下面的方式: Unity是基于Mono的,它是开源的 代码下载: 直接下Zip包,注意Tag版本与开发用的Unity版本要相同。 编译自己的Unity项目,找到 /Data/Managed/Assembly-CSharp.dll ,对它进行加密,可以自己写个小程序,把Assembly-CSharp.dll转换成字节流byte[],然后对byte[]加密。 常用的加密(效验)算法: * 散列:MD5、SHA、SHA3、RIPEMD、Tiger、Whirlpool、CRC、Adler * 对称:Base、DES、3DES、AES、RC、Rijndael、TripleDES、PBE、3-way、IDEA、MARS、Serpent、SAFER、Blowfish、Twofish、Tea、Skipjack、Camellia、Cast、Gost * 非对称:RSA、Elgamal、Diffie-Hellman、Rabin、ECDsa、Ecc 下面两个加密开源类库: Bouncy Castle(C#和Java版) 代码下载: 官网地址: Crypto++(C++版) 代码下载: 官网: .net自带了安全类库,确实是在System.Security.Cryptography下有一些常用的算法,虽然没有上面的类库全,但足以平常使用。 其C#源码也在Mono开源项目中 位置在 /mcs/class/corlib/System.Security.Cryptography/ 接着找到 /mono/metadata/image.c 查看下面两个方法
第一个方法mono_image_open_from_data_full内实际调用了mono_image_open_from_data_with_name 第二个方法mono_image_open_from_data_with_name的第一个参数char *data这个指针指向运行时Assembly-CSharp.dll的内存地址, 可在该方法内添加或调用对data解密的算法,然后将解密后的data再赋给datac 关于MonoImage这个结构体,它的定义是typedef struct _MonoImage MonoImage; 而_MonoImage这个结构体,它的定义在 /mono/metadata/metadata-internals.h 中 最后就是编译Mono了,编译部分参看官方说明 该方法虽然是修改Mono内核,偏底层了些,但并不是破解不了,但是难度提高了
推荐资料:
[置顶] 用Unity写了一个类似汤姆猫自动检测说话功能 简单的把脚本加到摄像机上就行下面是我写的脚本,有个问题因为是自动调用检测的调用录音unity调用有延时会出现一些延时小问题,可以参考我的代码
[置顶] Unity处理Hierarchy面板上的一些特殊的对象的特殊标识 孙广东.5.转载请注明出处:
Unity3D圣典学习【1】之Camera Camerasarethedevicesthatcaptureanddisplaytheworldtotheplayer.Bycustomizingandmanipulatingcameras,youcanmakethepresentationofyourgametrulyunique.Youcanhaveanunlimitednumberofcamerasinascene.Theycanbese
标签: unity如何避免碰撞穿透
本文链接地址:https://www.jiuchutong.com/biancheng/372848.html 转载请保留说明!下一篇:[置顶] 用Unity写了一个类似汤姆猫自动检测说话功能(写个置顶)
友情链接: 武汉网站建设