-
-
[原创]2022腾讯游戏安全初赛wp
-
发表于:
2022-4-27 13:59
13401
-
原程序运行后显示ACE,并且许秒后绘制消失。原题则要求如下:
首先创建了一个名为"avoid repeat open"的互斥体,保证程序的单例执行。
然后开始创建窗口,并初始化D3D设备。
随后开始动态获取ZwAllocateVirtualMemory和ZwFreeVirtualMem的函数地址。
调用ZwAllocateVirtualMemory申请一段可执行内存后,开始将两段shellcode写入。
紧接着可以看到通过调用GetTickCount来判断运行时间是否超过4秒,若超过4秒则清空shellcode,即绘制消失。
shellcode的入口为D3D的一些shader初始化。
动态编译shader完毕后开始执行虚拟机。
简单分析了之后,可知每个分支作用如下:
指令
作用
0
寄存器相加。eg:v1+=v2
1
两数相减。eg:v1-=v2
2
寄存器赋值。eg:v1=v2
3
立即数赋值。eg:v1=999
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2022-4-27 15:33
被kanxue编辑
,原因: