PP保护也会设置游戏线程的HideFromDebugger,不过它不是调用ZwSetInformationThread来设置,是用驱动遍历了游戏线程,直接线程的ETHREAD.
遍历线程的时候,它用到了PsLookupThreadByThreadId这个函数,所以我们要hook住这个函数,如果确定了当前是PP保护在调用这个函数,那么就把得到的线程对象的hidefromdebugger位去掉,切返回一个假线程体给它,代码是这样的:
PP保护也会设置游戏线程的HideFromDebugger,不过它不是调用ZwSetInformationThread来设置,是用驱动遍历了游戏线程,直接线程的ETHREAD.
遍历线程的时候,它用到了PsLookupThreadByThreadId这个函数,所以我们要hook住这个函数,如果确定了当前是PP保护在调用这个函数,那么就把得到的线程对象的hidefromdebugger位去掉,切返回一个假线程体给它,代码是这样的: