-
-
[原创]2026腾讯游戏安全PC初赛Writeup
-
发表于:
2026-4-13 10:01
2717
-
[原创]2026腾讯游戏安全PC初赛Writeup
(1)成功加载驱动并与之正确通信,理解题目基本机制,识别并排除干扰信息。需在 writeup 中说明分析过程。
在Windows11 24h2系统上,直接关闭签名强制校验即可成功加载驱动。

题目中存在一个迷宫,通过用户态程序可以在迷宫中行进,迷宫尺寸为13*13,起点在左上角,终点在右下角。迷宫中共有五种隐藏的提示,每成功行走一次都会有其中随机一种被触发;重置后的前五次成功行进一定会按固定顺序依次触发五种提示。

查看驱动可以发现四个明文字符串,在用户态也有对应的字符串,可以知道是创建了IO设备用于通信,简单分析可以找到驱动的派遣函数。

分析发现0x80012004用于移动,0x80012008用于重置,0x8001200C用于查询迷宫参数。其中用于移动的0x80012004通信会异或0xDEAD1337,sub_140002038被虚拟化。
通过模拟执行工具,在栈上解析得到如下字符串:
\BaseNamedObjects\{A7F3B2C1-9E4D-4C8A-B5D6-1F2E3A4B5C6D}
\BaseNamedObjects\{B8E2C3D0-0F5A-5D9B-C6E7-2A3F4B5C6D7E}
用户句柄中发现\BaseNamedObjects\{E8D7C6B5-A4F3-2E1D-0C9B-8A7F6E5D4C3B}。

(2)发现「宫殿」系统的隐匿通信手段并编写可工作的检测工具,发现的手段种类越多、利用越完整,得分越高,需提交相关源码并在 writeup 中说明分析过程。
对驱动函数都查看一遍,可以发现其中四处隐秘通信。

图中为其中一处,其在特定条件下修改进程TEB+0x68(LastErrorValue)。
能简单发现的共四处:
(1)sub_1400022B0 会打开并置位:
(2)sub_140319A37 会解码并操作两个命名信号量:
(3)sub_140316ADF 会向 TEB+0x68 写入 4 字节值。 已确认写入值包括:
(4)sub_14031857E会读取TEB+0x1748处句柄值然后设置为ProtectFromClose。题目提示共有五处信息泄露,因此还有一处。查看了驱动所有导入表和手动导入,发现有未用到的函数ZwProtectVirtualMemory被手动导入。

对其下断,发现在第五次成功移动时断点被触发,对调用方程序的 .data 节段前0x1000设置了页面保护为PAGE_EXECUTE_READWRITE。
多次尝试发现可以稳定触发,因此可以作为第五处信息。
传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2026-4-13 13:34
被Saileaxh编辑
,原因: