首页
社区
课程
招聘
[求助]
发表于: 2010-10-4 09:09 2822

[求助]

2010-10-4 09:09
2822
我HooK 了 ZwOpenProcess,我打印这个函数的第四个参数,Client_ID->UniqueProcess,

    结果打印出来的结果会有 17350656,3203072这样的ID,并且通过这些ID调用PsLookupProcessByProcessId 都会调用失败,
未什么会有这么大的进程ID呢,能正常输出进程名称的进程的ID在任务管理器中可以看到ID和任务管理器中的一样,这些Can not Get Process Info 的ID好大啊,任务管理器重根本看不到
代码如下:
#pragma NONPAGEDCODE
NTSTATUS MyZwOpenProcess( PHANDLE ProcessHandle, ACCESS_MASK DesiredAccess,  POBJECT_ATTRIBUTES ObjectAttributes, PCLIENT_ID ClientId)
{
        NTSTATUS status,status2;
        status=STATUS_SUCCESS;
       
        status=OldZwOpenProcess(ProcessHandle,DesiredAccess,ObjectAttributes,ClientId);
        //无论原始函数调用失败或者成功,那是它自己的事情,不要管
        if(ObjectAttributes->ObjectName) //有名字存在
        {
           KdPrint(("Current Process Name:%s\n",ObjectAttributes->ObjectName));
        }
        else
        {
                PEPROCESS Process;
                KdPrint(("Current Process ID:%u\n",ClientId->UniqueProcess));
                status2=PsLookupProcessByProcessId(ClientId->UniqueProcess,&Process);
                if(!NT_SUCCESS(status2))
                {
                        KdPrint(("Can not Get Process Info...\n"));
                        return status;
                }
        UCHAR *strProcessName=PsGetProcessImageFileName(Process);
         KdPrint(("Current Process Name:%s\n",strProcessName));
        }
        return status;
}

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//