代码:
HANDLE DebugPort = 0;
NtQueryInformationProcess((HANDLE)-1, ProcessDebugPort, &DebugPort, sizeof(HANDLE), 0);
函数声明如下
__declspec(naked)
NTSTATUS NTAPI NtQueryInformationProcess(
HANDLE ProcessHandle,
PROCESS_INFORMATION_CLASS InformationClass,
PVOID ProcessInformation,
ULONG ProcessInformationLength,
PULONG ReturnLength )
{//(HANDLE)-1, ProcessDebugPort, &DebugPort, sizeof(HANDLE), 0
__asm{
MOV EAX, IMP_NtApiIndex[iNtQueryInformationProcess * 4]
//执行完上一句 EAX为 0x10F31380
MOV EDX, 7FFE0300h
CALL DWORD PTR DS:[EDX] //KiFastSystemCall
RETN 14h
}
}
知道这个是自己调用KiFastSystemCall函数进入内核马上又出来了,还有目测函数执行完得到了DebugPort 这个BOOL但是不知道EAX为 0xCB2E430A是什么个意思?还有这种方法叫啥?求指导啊!