lovehunterboy
驱动小牛
驱动小牛
  • 注册日期2008-05-29
  • 最后登录2010-04-16
  • 粉丝2
  • 关注0
  • 积分67分
  • 威望463点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1139回复:0

请教:如何在IRQL=2时获得当前运行程序的全路径名?

楼主#
更多 发布于:2008-12-27 13:00
网上有可以能过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;
}
游客

返回顶部