游戏安全实验室 首页 活动 查看内容

2016游戏安全技术竞赛_PC端题目解答思路

发布于:2016-5-13 15:31   |    149670次阅读 作者: 管理员    |   原作者: TP   |   来自: 原创

第二阶段第一题.

题目检测程序多开。第二轮第1题_PC.zip

解题重点:

程序可能会异常退出,当程序正常或者异常退出的时候,都需要能正确的输出结果。有一些同学可能实现了很多种方式,但是程序异常退出的情况没考虑到,于是丢了不少的分数。可以利用和进程生命周期相关的内核对象进行检测。

解法及思路:

1.创建特定的窗口,然后枚举这种类型的窗口的个数

2.创建特定格式的共享内存,EventWaitableTimer,Desktop,JobObject等

3.枚举相同路径的进程

 

 

第二阶段第二题.

题目检测虚拟机。第二轮第2题_PC.zip

解法及思路:

1.特权指令检测VMWare(in)

2.检测虚拟机的硬件信息。(MAC地址,显示设备,进程信息,注册表信息,硬盘信息等)

3.实际装一个虚拟机,观察它的各种系统信息,设备信息,容易找到方法 

 

第二阶段第三题

题目检测调试器。第三轮第3题_PC.zip

解法及思路:

1.IsDebuggerPresent

2.CheckRemoteDebuggerPresent

3.NtGlobalFlags

4.HeapFlags

5.ForceFlags

6.检查调试器窗口

7.检查调试器进程

8.Guard Pages保护进行检测

9.利用NtQueryInformationPorcess() 函数查询DebugPort

10.利用软件断点(int3),根据中断的处理方,可以判断是否处于调试状态

11.设置标志寄存器中的陷阱标志(TF位),产生单步异常,如果调试器存在,该异常将会被调试器捕获,否则由程序自己捕获,依此可以判断进程是否被调试

12.根据OutputDebugString()进行判断.如果有调试器存在,OutputDebugString()后执行GetLastError(),其返回值为0;没有调试器时,返回值非0


*转载请注明来自游戏安全实验室(GSLAB.QQ.COM)

分享到:
踩1 赞1

收藏

上一篇:2016游戏安全技术竞赛最终结果公布

下一篇:腾讯游戏安全中心招人啦~

最新评论
引用 月神 2016-5-22 10:42
搞个竞赛还要学历,我们这些初中学历的都被忽视了

查看全部评论(1)

B Color Image Link Quote Code Smilies

发表评论

top 问题反馈

返回顶部