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

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

9小时前
370


从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 图层,以及把世界坐标投影后提交到屏幕 。 把图层放到游戏上方  ,并设置穿透属性不影响玩家正常触摸与游戏交互




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

引流QQ 群:群号:打码

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

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

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

英雄/皮肤头像资源按代码实际构造为:  a14K9s2c8@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  

最终流程:



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


传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!!

最后于 9小时前 被只会逆一点点编辑 ,原因:
收藏
免费 47
打赏
分享
最新回复 (11)
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2
tql
8小时前
0
雪    币: 251
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
666
6小时前
0
雪    币: 2727
活跃值: (3881)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
66
6小时前
0
雪    币: 6
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
感谢分享
6小时前
0
雪    币: 50
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
6
感谢分享
6小时前
0
雪    币: 7168
活跃值: (7295)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
66
5小时前
0
雪    币: 1844
活跃值: (7938)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
8
1
4小时前
0
雪    币: 1
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
9
666666
4小时前
0
雪    币: 10
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
感谢
4小时前
0
雪    币: 360
活跃值: (897)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
111
3小时前
0
雪    币: 1560
活跃值: (5598)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
12
嘿嘿
3小时前
0
游客
登录 | 注册 方可回帖
返回