首页
论坛
课程
招聘
[求助]IceSword是如何结束线程的?
2009-1-7 16:09 5506

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

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

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

收藏
点赞0
打赏
分享
最新回复 (3)
雪    币: 478
活跃值: 活跃值 (580)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
sudami 活跃值 25 2009-1-7 17:40
2
0
不行你就插APC啊....

这个下个断点,不懂的一路跟下去就懂了. 跟到PspExitThread继续跟....
雪    币: 459
活跃值: 活跃值 (44)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
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,自结束
雪    币: 217
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
escript 活跃值 2009-1-8 11:50
4
0
多谢大牛指点
游客
登录 | 注册 方可回帖
返回