首页
社区
课程
招聘
[原创]某安卓四字游戏外挂样本分析
发表于: 3天前 1745

[原创]某安卓四字游戏外挂样本分析

3天前
1745


从tg上扒了几个某四字游戏的外挂样本进行分析,不限于公益,付费,以下分析仅针对外挂样本原理探究不涉及真实游戏内存数据



不同的样本具有不同程度的混淆,这里简单的基于微码去掉太复杂的icall选择trace。样本运行后会在屏幕上绘制敌方玩家位置。




样本提供了多种跨进程读取方案




系统调用syscall  


内核方案,ko内核和KPM内核

ko内核提供了多个版本,使用sh脚本一键安装,ko模块内嵌在sh脚本中


对这个驱动进行分析:

通讯功能如下

读写实现

缺页处理方面:它会检测无效 PTE/PFN,但不会主动触发缺页,也不会换入 swapped-out 页面。目标页面不驻留时直接失败。页表遍历还硬编码了 30/21/12 位移,因此实际只适合 4 KB 页内核


模块地址查询  

它遍历目标进程 VMA,通过 d_path() 获取映射路径并进行子串匹配:


断链隐藏自身驱动模块

其实这些内核模块功能类似,安卓上也不太能对内核做保护,没啥可分析的,也不知道为啥外挂作者喜欢赛一堆垃圾内核模块给用户。哦,可能和大部分安卓外挂作者自身水平有关,记得之前分析某外挂样本,什么云驱动内核,我还以为是什么东西以为和win一样壳加载云下发,结果是syscall vm_read ....


KPM则是使用杂鱼面具或者apatch加载

内核通讯方案,hook某个系统调用做后门和之前分析的差不多,反正安卓没PG随便hook




使用了imgui库底层使用的Vulkan 不是 OpenGL ES  看来外挂也在与时俱进, 创建独立 Surface 图层,以及把世界坐标投影后提交到屏幕 。 把图层放到游戏上方  ,并设置穿透属性不影响玩家正常触摸与游戏交互




ffcK9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3N6Y4m8Q4x3X3g2I4M7g2)9J5k6h3y4G2L8g2)9J5c8Y4N6W2j5U0t1H3x3e0j5H3y4g2)9J5c8X3A6K6i4K6u0r3K9r3g2J5L8$3I4A6M7%4c8Q4x3X3g2B7M7$3!0F1   下载英雄资料:  

引流QQ 群:群号:打码

wy.llua.cn:80 使用的网络验证域名

英雄详细资料页面按以下形式构造:  0b4K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6H3N6Y4m8Q4x3X3g2I4M7g2)9J5k6h3y4G2L8g2)9J5c8Y4N6W2j5U0t1H3x3e0j5H3y4g2)9J5c8X3S2W2M7X3!0V1k6i4c8S2K9h3I4Q4x3V1k6E0i4K6u0r3i4K6N6n7英雄ID或ename}.html

例如程序会把详情页面缓存成:  /data/adb/yaziduck_icons/skill/hero_detail_{英雄ID}.html

英雄/皮肤头像资源按代码实际构造为:  6d2K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6Y4j5h3#2W2i4K6u0W2k6%4c8A6L8h3N6Q4x3X3g2U0L8W2)9J5c8X3W2E0j5h3N6W2M7#2)9J5c8Y4W2^5P5X3A6Q4x3V1k6A6L8h3M7J5x3o6p5$3x3o6k6Q4x3V1k6Z5k6i4u0G2K9h3#2Y4i4K6u0r3i4K6N6n7英雄ID}/{皮肤资源ID}.png
这里下载资源为了绘制后能显示对应的信息



该游戏在触发某些风控后会下发匿名内存shellcode对关键数据进行加密,很多样本对下发函数进行hook ret(那实在是太没技术了不如直接直装重打包),也有使用hook拿到解密后的数据,不过比较有含金量的是纯算法解密不动内存。下面讲解这个样本的模拟执行对抗



缺页反模拟执行Unicorn 只能访问已经通过 uc_mem_map() 建立的 Guest 地址。解密函数一旦跟随某个指针访问其他对象,就会产生:

该样本使用UC_HOOK_MEM_UNMAPPED,缺页时执行:




Unicorn 是用户态 CPU 模拟器,没有 Android 内核。执行 SVC #0 时不能直接完成系统调用,只会触发 UC_HOOK_INTR,所以在shellcode中掺杂系统调用来干扰模拟执行

该样本解法:

捕获 Guest 的 SVC #0

Unicorn 产生中断,读取:  


Guest 的 X0 是游戏进程中的 FD,不能被当前样本直接使用 要复制过来

在宿主执行真实 ioctl  

将驱动输出复制回 Guest  , 设置返回值并越过 SVC  

最终流程:



游戏核心解密依赖于线程上线文环境


冰与火的战歌:Windows内核攻防实战高级班!从零到实战,融合AI与Windows内核攻防全技术栈,打造具备自动化能力的内核开发高手。

最后于 3天前 被只会逆一点点编辑 ,原因:
收藏
免费 98
打赏
分享
最新回复 (33)
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
tql
3天前
0
雪    币: 251
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
666
3天前
0
雪    币: 2727
活跃值: (3886)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
66
3天前
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
感谢分享
3天前
0
雪    币: 50
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
感谢分享
3天前
0
雪    币: 7181
活跃值: (7310)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
66
3天前
0
雪    币: 1847
活跃值: (7943)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
1
3天前
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
666666
3天前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
感谢
3天前
0
雪    币: 360
活跃值: (922)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
111
3天前
0
雪    币: 1560
活跃值: (5603)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
嘿嘿
3天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
666
3天前
0
雪    币: 4510
活跃值: (7172)
能力值: ( LV9,RANK:220 )
在线值:
发帖
回帖
粉丝
14
牛的
2天前
0
雪    币: 39
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
15
飞机上有资源,有没有真正的技术开源大牛?
2天前
0
雪    币: 41
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
谢谢楼主分享
2天前
0
雪    币: 214
活跃值: (795)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
9876
1天前
0
雪    币:
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
1
1天前
0
雪    币: 217
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
11111
1天前
0
雪    币: 220
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
20
牛的,看看过程
1天前
0
雪    币: 721
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
牛逼
1天前
0
雪    币: 0
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
22
1
1天前
0
雪    币: 14
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
23
111
22小时前
0
雪    币: 1165
活跃值: (1475)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
24
666
21小时前
0
雪    币: 4
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
25
666
20小时前
0
游客
登录 | 注册 方可回帖
返回