查看原文
其他

记录U3D逆向Assembly-CSharp-firstpass.dll解密

狂神说 看雪学院 2019-05-26


最近一直想逆向一个自己一直在玩的手游,

就把其中遇到的一些问题记录下来分享给大家吧!

使用到的工具:

1.APKIDE 

2.NET Reflector

3.IDApro

4.IDEA ——用java写的解密算法,嘻嘻~

主要就是寻找解密算法比较麻烦。




怎么判定它是Unity游戏呢,看这个目录assets\bin\Data\Managed:




可以看出来是用unity3D开发的。


Assembly-CSharp-firstpass.dll游戏的代码就是在这里,是用C#开发的。




用Reflector软件打开,结果发现打不开,是加密的。




于是乎在apk压缩包找到lib\armeabi-v7a\libmono.so。


用IDA打开,定位到 mono_image_open_from_data_with_name 方法。


注意:这里只能32位的才能打开,64位进不去(至少我的是这样)。


找到这里的解密算法:






然后就开始写解密算法啦,这里我用JAVA写的。


(注:自己写两个函数,将文件成字节数组然后就可以进行解密了)


将Assembly-CSharp-firstpass.dll转换为字节文件:



进行解密,然后输出就搞定了。




然后我们把输出的文件导入Reflector:



好啦,解密成功!


到这里我们就可以进行下一步的源码分析了。敬请期待!





看雪ID:狂神说

https://bbs.pediy.com/thread-246481.htm





本文由看看雪论坛 狂神说 原创

转载请注明来自看雪社区





热门技术文章推荐









 戳原文,看看大家都是怎么说的?

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存