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

  • 标 题:答复
  • 作 者:qihoocom
  • 时 间:2009-01-07 18:29

冰刃有两种结束线程的方式 Terminate和Kill(Force)
其中Terminate功能是使用ObOpenObjectByPointer 打开找到的线程对象,然后调用找到的原始的NtTerminateThread函数结束之

Kill(Force)功能,使用PsLookupThreadByThreadId 等函数获得线程对象,然后使用KeInsertQueueApc插入Kernel routine apc
在APC例程里,先调用PsTerminateSystemThread试图去结束系统线程,如果这里不是一个系统线程,就会失败,那么会接着调用之前找到的原始的NtTerminateThread函数来结束这个线程。此处的传入线程句柄是使用的PsGetCurrentThread,即-1,自结束