首页
社区
课程
招聘
[原创]2026 年腾讯游戏安全初赛 PC方向
发表于: 2026-4-14 02:42 3201

[原创]2026 年腾讯游戏安全初赛 PC方向

2026-4-14 02:42
3201

注:本人草台班子出身属于是那种可以整出效果但是文章过程一坨的 这里文章还要让ai帮我润色的,看了论坛大佬的文章也发现了一堆丢分的点只能说下次努力吧 ,答案以官方公布为准 


这题第一眼看题面就知道不是单纯的用户态程序,真正有东西的是 `ShadowGateSys.sys`,而 `ShadowGateApp.exe` 更像一个控制台壳子,负责发指令、接回包、展示结果。

先从题面和字符串把外轮廓摸出来。很快能确定三个关键信息:

一是设备名是 `\\.\\ShadowGate`;二是控制台会创建多组命名 Event / Semaphore;三是初始化 IOCTL 会返回迷宫尺寸和起终点坐标。

因为驱动混淆挺重,直接静态啃 DeviceIoControl 分支会很慢,所以先用 Frida 把 App 挂起来,把 `CreateFileW / CreateEventW / CreateSemaphoreW / DeviceIoControl` 全部打一遍日志。(这里就是第一个丢分点了连驱动都没有加载,直接就是用户态 hook 抓协议,然后离线模拟驱动逻辑直接恢复了迷宫和最终 flag)

这样做的好处是非常直接:哪几个对象被创建了、IOCTL 号是多少、初始化回包长什么样,一眼就能看出来。

最终抓到的核心协议是:`0x8001200C` 为初始化,`0x80012004` 为移动,`0x80012008` 为 reset。初始化返回 24 字节,也就是 6 个 `uint32`。真正的迷宫不是 16x16,而是 13x13,终点在 `(12,12)`。

 1  协议抓取与初始化回包解析

题面说得很抽象,说系统表面没反馈,但每次 reset 后前五次成功移动会按固定顺序暴露五种漏洞。这个描述其实已经很像引导了:说明泄漏不是随机的,而是状态机。

先在用户态日志里把对象名字收集出来,再配合驱动模拟,把 move 分支一层层跑通。最后确认的五类泄漏顺序如下:

1. Event 泄漏;2.Semaphore 泄漏;3.TEB 写入泄漏;4.TEB/线程上下文读探测;5.PEB 读探测。

这里最坑的一点是,后面三类已经不是简单对象信号了,而是 attach 到用户进程后对 TEB / PEB 做读写,所以如果只盯着事件对象会漏掉一大半。


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

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 104
活跃值: (8407)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
tql
2026-4-15 11:46
0
雪    币: 200
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
大佬有可复现的脚本吗
2026-4-15 19:40
0
雪    币: 216
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
大佬,样本可以给一份吗
2026-4-23 08:49
0
游客
登录 | 注册 方可回帖
返回