能力值:
( LV15,RANK:2473 )
|
-
-
26 楼
用ZwQuerySystemInformation找到CrackMe.sys的模块地址,
用自己写的驱动patch CrackMe.sys中的判断跳转语句,使CrackMe.sys对OpenProcess的限制无效,就可以正常OpenProcess并TerminateProcess了
|
能力值:
( LV15,RANK:2473 )
|
-
-
27 楼
通过ntoskrl.exe找到真实函数地址,恢复原始SSDT,使OpenProcess正常工作
|
能力值:
( LV15,RANK:2473 )
|
-
-
28 楼
PostMessage(hwnd,WM_KEYDOWN,VK_ESCAPE,0x40010001);
PostMessage(hwnd,WM_KEYUP,VK_ESCAPE,0x80010001);
|
能力值:
( LV15,RANK:2473 )
|
-
-
29 楼
SetForegroundWindow把目标程序置前台
SetCursorPos把光标定位到右上角小叉的范围内
mouse_event点击鼠标左键
|
能力值:
( LV15,RANK:2473 )
|
-
-
30 楼
以PROCESS_DUP_HANDLE权限OpenProcess目标进程
用DuplicateHandle把目标进程的pseudo句柄复制出来,可以是最大权限的
然后就可以TerminateProcess了
|
能力值:
( LV15,RANK:2473 )
|
-
-
31 楼
用ProcessExplorer可以观察到目标进程内的线程句柄已经存在
所以用DuplicateHandle循环把目标进程内每个句柄都假设成thread objects复制出来,
复制成功的都都执行TerminateThread操作,最后总会把那个真实的Thread结束掉
|
能力值:
( LV15,RANK:2473 )
|
-
-
32 楼
做个穷举用DuplicateHandle把目标进程内每个HANDLE复制出来,
其中会有一个是CrackMe.sys的设备句柄,(可以用ZwQueryObject判断一下句柄是否是需要的,我这里为了只说明原理,把ZwQueryObject简化掉了)
我简单对每个复制出来的句柄DeviceIoControl(hDupTmp, 0x830020C0, &dwMyPid, 4, NULL, 0, &dwBytesReturned, NULL);
这样就可以把CrackMe.sys所保护的pid换掉,目标进程就不被保护了
最后就可以直接的OpenProcess并TerminateProcess了
|
能力值:
( LV15,RANK:2473 )
|
-
-
33 楼
这题太丑了,看了会让人发笑的
如果有部分和别人不同的可以公开,其他不要公开了
|
能力值:
(RANK:350 )
|
-
-
34 楼
那就全留下来
|
能力值:
( LV2,RANK:10 )
|
-
-
35 楼
看不懂,可以说说吗?
|
能力值:
( LV9,RANK:290 )
|
-
-
36 楼
支持偶像,太强大了!学习!
|
能力值:
( LV2,RANK:10 )
|
-
-
37 楼
还在做早操,汗,我不敢参加
|
能力值:
( LV9,RANK:290 )
|
-
-
38 楼
一个一个慢慢学习!
|
|
|