关于PspTerminateThreadByPointer的疑问
在DriverA中有线程ThreadA,能不能在DriverB中使用PspTerminateThreadByPointer结束ThreadA。如果能,应该如何操作。 找到PspTerminateThreadByPointer的地址就可以调用了 找到了,不能终止驱动创建的线程 这么干:(假设要结束的线程的ETHREAD是变量txtd)*(PULONG64)((ULONG64)txtd+OFFSET_CROSS_THREAD_FLAGS)=0x9;
PspTerminateThreadByPointer(txtd,STATUS_SUCCESS,TRUE);
注意OFFSET_CROSS_THREAD_FLAGS是硬编码,要用WinDbg确认偏移量的。 不能终止驱动创建的线程 是 不可能的。 Tesla.Angela 发表于 2015-10-14 22:26
不能终止驱动创建的线程 是 不可能的。
目测只是因为驱动创建的线程都是系统线程,PspTerminateThreadByPointer不能结束之的关系吧。。。所以只要用DKOM欺骗之或者插APC来PsTerminateSystemThread就能结束 找到解决方案,就是插入APC,再调用PsTerminateSystemThread,就能结束了。如果不是系统线程,直接调用PsTerminateSystemThread就可以结束掉。动态逆向了PChunter64,他也是插APC后,让系统线程自杀的。 找到解决方案,就是插入APC,再调用PsTerminateSystemThread,就能结束了。如果不是系统线程,直接调用PspTerminateThreadByPointer就可以结束掉。动态逆向了PChunter64,他也是插APC后,让系统线程自杀的。
页:
[1]