首页
论坛
专栏
课程

[求助]IceSword是如何结束线程的?

2009-1-7 16:09 5086

[求助]IceSword是如何结束线程的?

2009-1-7 16:09
5086
冰刃的强力结束线程貌似很牛, 在网上找了几种驱动代码资料,自己整理编译后,貌似都不如冰刃的强,貌似调用的不是PspTerminateThreadByPointer
哪位大牛扔点代码或者指点一下小弟
山寨版的IceSword也不如它

[公告]安全测试和项目外包请将项目需求发到看雪企服平台:https://qifu.kanxue.com

最新回复 (3)
sudami 25 2009-1-7 17:40
2
0
不行你就插APC啊....

这个下个断点,不懂的一路跟下去就懂了. 跟到PspExitThread继续跟....
qihoocom 9 2009-1-7 18:29
3
0
冰刃有两种结束线程的方式 Terminate和Kill(Force)
其中Terminate功能是使用ObOpenObjectByPointer 打开找到的线程对象,然后调用找到的原始的NtTerminateThread函数结束之

Kill(Force)功能,使用PsLookupThreadByThreadId 等函数获得线程对象,然后使用KeInsertQueueApc插入Kernel routine apc
在APC例程里,先调用PsTerminateSystemThread试图去结束系统线程,如果这里不是一个系统线程,就会失败,那么会接着调用之前找到的原始的NtTerminateThread函数来结束这个线程。此处的传入线程句柄是使用的PsGetCurrentThread,即-1,自结束
escript 2009-1-8 11:50
4
0
多谢大牛指点
游客
登录 | 注册 方可回帖
返回