首页
社区
课程
招聘
[求助]IRQL=2时怎样获得当前运行程序的全路径名
发表于: 2008-12-27 12:57 4868

[求助]IRQL=2时怎样获得当前运行程序的全路径名

2008-12-27 12:57
4868
网上有可以能过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;
}

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (3)
雪    币: 364
活跃值: (152)
能力值: ( LV12,RANK:450 )
在线值:
发帖
回帖
粉丝
2
死机是因为访问了分页内存吧,你还是降回去的好。期待高手给个更好的解答
2008-12-27 13:18
0
雪    币: 218
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
怎么降啊,我只知道升的:KeRaiseIrql/KeLowerIrq,不知道怎么降!
2008-12-27 16:26
0
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
4
自己做PAGE IN
或者是搞WORKITEM来做
2008-12-27 19:21
0
游客
登录 | 注册 方可回帖
返回
//