阅读:1249回复:0
请教:如何在IRQL=2时获得当前运行程序的全路径名?
网上有可以能过PEB来获得得当前运行程序的全路径名,但在IRQL=2时要死机,所以请大虾们赐教,能不能给个具体的方面在IRQL=2时也可以实现,谢谢。
网上代码如下: /*++ 获得当前进程全路径 --*/ PCWSTR FsdGetProcessFullName() { ULONG dwAddress; dwAddress = (ULONG)PsGetCurrentProcess(); if(dwAddress == 0 || dwAddress == 0xFFFFFFFF) return NULL; //取得PEB,不同平台的位置是不同的。 dwAddress += BASE_PROCESS_PEB_OFFSET; if((dwAddress = *(ULONG*)dwAddress) == 0) return 0; // 通过peb取得RTL_USER_PROCESS_PARAMETERS dwAddress += BASE_PEB_PROCESS_PARAMETER_OFFSET; if((dwAddress = *(ULONG*)dwAddress) == 0) return 0; //在RTL_USER_PROCESS_PARAMETERS->ImagePathName保存了路径,偏移为38, dwAddress += BASE_PROCESS_PARAMETER_FULL_IMAGE_NAME; if((dwAddress = *(ULONG*)dwAddress) == 0) return 0; DbgPrint("name:%ws",(PCWSTR)dwAddress); return (PCWSTR)dwAddress; } |
|