|
发表于 2011-3-21 21:11:52
|
显示全部楼层
回复 Xor 的帖子
从前面得到的资料 上来说是可以的。具体的要看代码了。
KiDeliverApc中用while处理完所有Kernel Mode APCs,但User Mode APC却只处理一个!
这句话很关键。再结合另一段文字(pjf 的终止进程的内幕):
线程是怎样结束的呢。PspTerminateThreadByPointer并不是直接“杀掉”指定线程,实质上线程是“自杀”的,呵呵。系统简单的使用KeInitializeApc/KeInsertQueueApc插入了一个核心态的APC调用,若是用户线程,会再插入用户态的APC调用,最终线程在自己的执行环境中使用PspExitThread(...=>KeTerminateThread=>KiSwapThread)悲壮的自行了断。
所以,可以阻止内核态下APC的操作,至于用户态的APC,听天由命吧。
|
|