首页
社区
课程
招聘
[原创]**前线破解
发表于: 2019-5-5 20:16 9987

[原创]**前线破解

2019-5-5 20:16
9987

**前线是一款有保护的游戏,我们来破解一下他们的保护。
1.首先我们来打开一下游戏中的Assembly-CSharp.dll文件,这个文件是u3d mono游戏的关键文件,游戏的主要逻辑都包含在其中。

2.拖到dnspy(一款dll反编译工具,可在github中下载)中查看,可以看到不能正常解析出来,这说明dll是被处理过的。

3.那我们要开始着手处理脱壳了,怎么才能解密出来dll呢。一般解密可以通过搜索dll的魔幻字,但是nProtect有反调试,不能直接搜索dll的魔幻字得到。于是我们需要去Hook相应的函数来获取解密后的dll。

4.dll加载过程。U3D中mono加载dll的过程简要提下。首先是调用mono_image_init函数进行初始化,那dll解密肯定是需要在mono虚拟机加载之前的,因此,在mono_init_image函数进行hook,看能不能得到解密的dll。使用inlinehook对libmono.so里面的函数进行hook。inlinehook是通过修改函数的前几条指令,使其跳转到我们的函数地址,执行后再跳转回原函数。Cydia Substrate是较早的inlinehook框架(其缺点是只支持Dalvik模式,Android 4.4以上请慎用)代码如下:

(1)首先hook dlopen函数,在游戏打开libmono.so时候,对libmono.so的mono_image_init函数进行hook

(2)在游戏调用mono_image_init函数时进行hook,读取mono中的image文件,根据Image的结构将dll文件dump下来。

这说明nProtect可能会对libmono.so中的函数进行校验。对函数进行校验对inlinehook进行保护的方案,那我们有没有其他方法呢?--那就是GOT表Hook。GOT表是SO库
中的外部函数导入表,当进程需要引用其他so库中的函数,会将这个函数的地址写入got表中,实际调用的时候,会按照got表中的地址跳转调用。GOT表就是通过got表
中的地址,将GOT表中的地址指向我们编写的函数,再在自定义函数末尾跳转回原函数。按照这个思路,那我们需要找到调用mono_image_init的地方,答案就在
libunity,so里面,其导入函数表中含有mono_image_init函数。因此,我们需要对llibunity中的函数进行got表Hook。got表hook这里采用开源的框架xhook进行hook。


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 1
支持
分享
最新回复 (10)
雪    币: 144
活跃值: (38)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
问一下,**是论坛自己打得码还是你自己主动打的码
2019-5-5 20:22
0
雪    币: 6124
活跃值: (4656)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
3
主动 打码。yaozi前线
2019-5-5 23:11
1
雪    币: 164
活跃值: (104)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
虚假的指挥官
2019-5-5 23:40
0
雪    币: 1787
活跃值: (913)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
这位指挥官,您可以试试dump设备内存的方法然后用winhex的恢复文件功能呢
2019-5-6 01:33
0
雪    币: 0
活跃值: (169)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
怎麼了?
最后于 2019-5-6 06:18 被godofrock编辑 ,原因:
2019-5-6 06:17
0
雪    币: 287
活跃值: (485)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
godofrock 怎麼了?
按照步骤最后不能解密嘛
2019-5-6 09:37
0
雪    币: 287
活跃值: (485)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
godofrock 怎麼了?
大胸弟,到底遇到啥问题了,楼主在线帮你解答啊
2019-5-17 14:53
0
雪    币: 287
活跃值: (485)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
Tatsuy 这位指挥官,您可以试试dump设备内存的方法然后用winhex的恢复文件功能呢
咦。可以一试
2019-5-17 14:54
0
雪    币: 256
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
你能给我发送源代码吗?
2019-5-28 01:25
0
雪    币: 51
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
已经凉了。这游戏改为il2cpp了
2019-5-30 00:29
0
游客
登录 | 注册 方可回帖
返回
//