首页
社区
课程
招聘
[原创]游戏安全之借坡下驴
2022-5-18 05:29 27669

[原创]游戏安全之借坡下驴

2022-5-18 05:29
27669

游戏安全之借坡下驴

exp: https://github.com/HadesW/mhy_exp

注:《借坡下驴》凭借有利的地势下驴。比喻利用有利条件行事。

0x0 简述

    之前有介绍《借刀杀人》,指的是利用高权限的系统进程。这次《借坡下驴》,是利用了某游戏本身的驱动保护程序。

    此文主要是记录分析某款游戏驱动保护的r3-r0通讯算法。因为文章整理于作者2020年10月份左右的笔记,有点流水账,分析和利用的样本大概是2020年8月-9月份左右的。


样本文件详情如下:

文件名:xxxxxxxx.sys

大小: 1269880 bytes

修改时间: 2020年9月29日, 12:27:38

0x1 结构分析

最开始,作者只是简单的关注了此驱动读写任意进程的功能。所以这里自底向上分析,通过基本的内核API分析其参数,然后查看其调用方如何把IoBuffer解析传入。

分析完后,其进程读写函数大概如下:

// 使用以下内核函数跨进程读写

NTSTATUS
MmCopyVirtualMemory(
    IN PEPROCESS FromProcess,
    IN CONST VOID *FromAddress,
    IN PEPROCESS ToProcess,
    OUT PVOID ToAddress,
    IN SIZE_T BufferSize,
    IN KPROCESSOR_MODE PreviousMode,
    OUT PSIZE_T NumberOfBytesCopied
    )

第一层调用:



第二层调用:

第三层调用:

dispatch call :  定位到读写IO码


最后的进程读写结构:

// read write process memory
typedef struct _rwpm_data
{
    uint32_t is_write;
    uint32_t padding;
    uint64_t pid;
    uint64_t dst;
    uint64_t src;
    uint64_t size;
}rwpm_data, * p_rwpm_data;

0x2 通讯分析

当时我有了读写结构之后,去做了demo调用,发现其通讯的数据是有加解密的,并且很多函数是有VMP过的。所以这里用动静结合的方式来还原算法。


1. 双机调试,下断其入口处,patch掉其反调试。

2. 定位其加解密Key初始化,下断单步,结合IDA观察传入数据的变化。

3. 根据一些经验猜测函数大概功能。

4. 还原初始化部分

5. 还原加解密部分

6. 用std::mt19937_64()重写加解密

0x3 功能分析

这里只给部分功能分析完后的结果:

1. 检测调试信息

2. 遍历进程模块信息


3. 强制结束进程


4. 获取线程信息

5. 获取进程信息

6. 获取驱动信息


7. 读取内核内存

8. 保护自身回调


9. 自保护(访问权限)


0x4 简单利用

1. 干掉杀毒软件后,运行RAT。

2. 读写系统进程 和 Hook检测(csrss.exe / lsass.exe / explorer.exe)

3. 读写保护进程(透视)


注:图中数据取自20220517日,游戏版本号6.0.4


[培训]《安卓高级研修班(网课)》月薪三万计划

最后于 2022-5-18 10:41 被HadesW编辑 ,原因:
上传的附件:
收藏
点赞18
打赏
分享
打赏 + 150.00雪花
打赏次数 1 雪花 + 150.00
 
赞赏  Editor   +150.00 2022/06/23 恭喜您获得“雪花”奖励,安全圈有你而精彩!
最新回复 (27)
雪    币: 457
活跃值: (1861)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
renbohan 2022-5-18 09:19
2
0
大哥牛皮
雪    币: 3349
活跃值: (3372)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
fengyunabc 1 2022-5-18 10:42
3
0
666
雪    币: 4438
活跃值: (2304)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Foodie 2022-5-18 11:11
4
0
大哥牛皮
雪    币: 257
活跃值: (3008)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
不懂就不懂 2 2022-5-18 11:18
5
0
大哥666
雪    币: 2015
活跃值: (3801)
能力值: ( LV4,RANK:55 )
在线值:
发帖
回帖
粉丝
Jev0n 2022-5-18 11:54
6
0
牛批
雪    币: 12833
活跃值: (8989)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2022-5-18 12:45
7
0
现在不是都mhyprot3.sys了吗
雪    币: 6263
活跃值: (3775)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大鲤鱼 2022-5-18 14:31
8
0
MHY_IOCTL_INIT   这个是干什么的?
雪    币: 225
活跃值: (1487)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wx_0xC05StackOver 2022-5-18 14:41
9
0
前排提示 米哈游驱动保护在疯狂招人
雪    币: 6263
活跃值: (3775)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大鲤鱼 2022-5-18 16:02
10
0
MHY_IOCTL_INIT  这是进程线程回调吗?
雪    币: 4427
活跃值: (3449)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2022-5-18 17:52
11
0
这么好玩。。。是因为这个驱动自带白名单签名的原因吧 稳定无检测
雪    币: 1556
活跃值: (2036)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
killleer 2022-5-18 20:22
12
0
hzqst 现在不是都mhyprot3.sys了吗
如果mhyprot3还有问题,那以后的mhy系列驱动都不会是白名单文件,现在mhy的驱动貌似已经被几家杀软拉灰了
雪    币: 1556
活跃值: (2036)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
killleer 2022-5-18 20:29
13
0
hzqst 现在不是都mhyprot3.sys了吗

已经被人玩了一年以上了

最后于 2022-5-18 20:30 被killleer编辑 ,原因:
雪    币: 219
活跃值: (2537)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
章鱼C 2022-5-18 22:08
14
0
这不是峰哥么...
雪    币: 3664
活跃值: (5200)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
huangjw 2022-5-19 11:24
15
0
什么时候才能追上你这技术水平。
雪    币: 504
活跃值: (2968)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wem 2022-5-21 18:40
16
0
mark
雪    币: 201
活跃值: (543)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
椰子比尔 2022-5-22 10:35
17
0
看着像原神游戏的驱动.
雪    币: 6111
活跃值: (3936)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
黑洛 1 2022-5-23 20:06
18
0
这mhy的驱动怎么一股大手子味?
雪    币: 1556
活跃值: (2036)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
killleer 2022-5-23 23:03
19
0
黑洛 这mhy的驱动怎么一股大手子味?
不要怎么,就是,都泛滥了
雪    币: 2909
活跃值: (2171)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
Mengluu 1 2022-5-24 17:06
20
0
之前原神上线没多久就有在UC论坛看到了利用帖子。感觉这就像是野生的被招安的写法一样,格外粗犷。
雪    币: 12833
活跃值: (8989)
能力值: ( LV9,RANK:280 )
在线值:
发帖
回帖
粉丝
hzqst 3 2022-5-24 21:38
21
0
黑洛 这mhy的驱动怎么一股大手子味?
我的评价是不如顺网读写.sys,那个才叫真·大手子,哪个函数是干嘛的都在函数入口给你log写明白咯
雪    币: 231
活跃值: (1635)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
劫局丶 2022-5-25 23:06
22
0
hzqst 我的评价是不如顺网读写.sys,那个才叫真·大手子,哪个函数是干嘛的都在函数入口给你log写明白咯
又黑我山总
雪    币: 231
活跃值: (1635)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
劫局丶 2022-5-25 23:06
23
0
黑洛 这mhy的驱动怎么一股大手子味?
相信自己,就是
雪    币: 137
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
虚心求教者 2022-7-26 15:45
24
0
为啥wpm无法写入数据
雪    币: 1974
活跃值: (1220)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_ooanbrsi 2022-7-26 17:47
25
0
大佬66666666
游客
登录 | 注册 方可回帖
返回