uPID = *(ULONG*)pInputBuffer;
GetPspAddr(); //得到PsTerminateProcess地址,MyPspTerminateProcess
if(MyPspTerminateProcess == NULL)
{
DbgPrint("PspFunc Not Find!\n");
}
else
{
ntStatus = PsLookupProcessByProcessId(uPID , &Eprocess);
if(!NT_SUCCESS(ntStatus))
{
DbgPrint("Failed to lookup process 0x%x, status %8.8x\n", uPID , ntStatus);
break;
}
DbgPrint("Lookup of process 0x%x, PEPROCESS at %8.8x\n", uPID, Eprocess);
ntStatus = MyPspTerminateProcess(Eprocess, 0); <-----------------
if(!NT_SUCCESS(ntStatus))
{
DbgPrint("Failed to terminate process 0x%x, status %8.8x\n", uPID , ntStatus);
break;
}
MyPspTerminateProcess = NULL;
}
暴力搜索了PsTerminateProcess的地址,可以得到正确的地址,但是这行还是出错了,windbg调试的结果是指针错误...调试了一天非常不理解,希望各位能指点一二...
[课程]FART 脱壳王!加量不加价!FART作者讲授!