首页
社区
课程
招聘
[原创]不懂算法第二阶段第二题
2007-8-30 17:12 7115

[原创]不懂算法第二阶段第二题

2007-8-30 17:12
7115
FindWindow(得到窗口句柄)->PostMessage(发送退出消息)
p01.rar

FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->keybd_event(模拟键盘输入Alt+F4)
p02.rar

FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->
GetWindowRect(得到窗口位置)->SetCursorPos(把鼠标移动到窗口X按钮地方)->
mouse_event(模拟鼠标单击左键)
p03.rar

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (1)
雪    币: 202
活跃值: (77)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
不懂算法 2 2007-9-2 03:29
2
0
第04-20种方法 hehe02.rar

04
GetProcAddress(得到ExitProcess函数地址)->
OpenProcess(得到进程HANDLE(用PROCESS_CREATE_THREAD|PROCESS_VM_OPERATION)这种方式打开,绕过过滤)->
CreateRemoteThread(创建一个ExitProcess的线程让程序退出)

05
ObReferenceObjectByName(得到crackme DRIVER_OBJECT)->
(计算crackme内部unhook函数地址)->
调用crackme内部的unhook卸载ssdt hook->
ring3下面
OpenProcess(打开crackmeapp进程)
TerminateProcess(关掉进程)

06
ObReferenceObjectByName(得到crackme DRIVER_OBJECT)->
(修改crackme.sys内保存的crackmeapp的PID的值,让crackmeapp不被保护)->
ring3下面
OpenProcess(打开crackmeapp进程)
TerminateProcess(关掉进程)

07
ObReferenceObjectByName(得到crackme DRIVER_OBJECT)->
(修改crackme.sys内HookNtOpenProcess函数内部的关键跳转,爆破成功)->
ring3下面
OpenProcess(打开crackmeapp进程)
TerminateProcess(关掉进程)

08
FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->keybd_event(模拟键盘输入Alt+Space)->keybd_event(模拟键盘输入C)

09
得到NtOpenProcess真实地址->
NtQuerySystemInformation(得到crackmeapp的pid)->
(真实的)NtOpenProcess(打开crackmeapp进程)->
ZwTerminateProcess(关掉进程)

10
FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->
GetWindowRect(得到窗口位置)->SetCursorPos(把鼠标移动到窗口左上角地方)->
mouse_event(模拟鼠标双击左键)

11
FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->
GetWindowRect(得到窗口位置)->SetCursorPos(把鼠标移动到窗口左上角地方)->
mouse_event(模拟鼠标单击击左键)->
keybd_event(模拟键盘按键C)

12
FindWindow(得到窗口句柄)->SetForegroundWindow(把窗口提到前端)->keybd_event(模拟键盘输入ESC)

13
NtQuerySystemInformation(得到所有crackmeapp进程的文件句柄)->
DuplicateHandle(把crackmeapp的句柄转换成自己进程的句柄)->
CloseHandle(关闭文件句柄)->
卸载crackme驱动->
OpenProcess(打开crackmeapp)->
TerminateProcess(关闭进程)

14
FindWindow(得到窗口句柄)->PostMessage(发送WM_NCDESTROY消息)

15
FindWindow(得到窗口句柄)->PostMessage(发送WM_SYSCOMMAND消息WPARAM=SC_CLOSE)

16
OpenProcess(用PROCESS_VM_OPERATION方式打开)->
VirtualProtectEx(把crackmeapp的kernel32.dll进程空间设置为PAGE_NOACCESS)

17
NtQuerySystemInformation(得到所有crackmeapp进程的文件句柄)->
DuplicateHandle(把crackmeapp的句柄转换成自己进程的句柄)->
CloseHandle(关闭文件句柄)->
卸载crackme驱动->
OpenProcess(打开crackmeapp)->
WriteProcessMemory(修改默认的窗口回调函数jmp到ExitProcess)

18
ObReferenceObjectByName(得到crackme DRIVER_OBJECT)->
(计算crackme内部unhook函数地址)->
调用crackme内部的unhook卸载ssdt hook->
ring3下面
OpenProcess(打开crackmeapp)->
WriteProcessMemory(修改默认的窗口回调函数jmp到ExitProcess)

19
FindWindow(得到窗口句柄)->PostMessage(发送WM_QUIT消息)

20
ExitWindowsEx(重启)
上传的附件:
游客
登录 | 注册 方可回帖
返回