-
-
[原创]unity3d手游破解(二)
-
发表于:
2018-4-23 11:17
13504
-
一、前言
unity3d手游的破解套路:拿到APK先看看有没有libmono.so和 assets\bin\Data\Managed\Assembly-CSharp.dll,有了之后看看
Assembly-CSharp.dll是否加密,加密之后先解密,解密之后找到关键函数修改,最后通过修改
libmono.so来加载解密后的dll实现破解。当前这个APK的
Assembly-CSharp.dll就是加密的。
二、解密dll
老套路,
把 libmono.so扔进ida,找到mono_image_open_from_data_with_name函数,F5查看发现了解密代码:
在这个函数直接就判断加载的dll是否
Assembly-CSharp.dll,如果是的话就先解密,LABEL_11就是解密代码,我们把代码抽取出来(完整代码放在附录了)编译一个解密器对dll解密,解密之后就可以对dll反编译了。
三、修改dll
一般通过关键字比如attack、damage、monster、skill、hp之类的去定位关键类,然后找从关键类里面找到需要的函数。在这个APK我们找到了game.data.HeroData类的changeHp函数,把这个函数直接返回false,实现无敌。
四、修改so
dll修改好之后,需要修改libmono.so来加载解密后的dll,如下图所示
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2018-4-25 14:36
被王正飞编辑
,原因: