Astronomy
驱动小牛
驱动小牛
  • 注册日期2005-04-11
  • 最后登录2011-12-20
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望31点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
阅读:3068回复:2

关于ZwQueryObject的问题

楼主#
更多 发布于:2005-05-02 11:48
在Ring3下
NTSTATUS        status;
OBJECT_NAME_INFORMATION    NameQuery;

//844是Explorer的ID
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,844);
if(hProcess==NULL)
{
printf(\"Open Process Failed!\\n\");
}
status=ZwQueryObject(hProcess,ObjectNameInformation,&NameQuery,sizeof(NameQuery),&dwReturn);
    if( !NT_SUCCESS( status ))
    {
        printf(\"ZwQueryObject wrong\\n\");
        CloseNTDLL();
        getchar();
        return -1;
    }

 printf(\"HANDLE:%08X         [%ws]\\n\",hProcess,NameQuery.Name.Buffer);

结果没有什么输出,怎么回事,我用ZwQueyObject查询其它句柄都可以
就是这个进程句柄不行.
菜鸟也写Windows
wywwwl
驱动大牛
驱动大牛
  • 注册日期2002-08-16
  • 最后登录2018-04-07
  • 粉丝1
  • 关注0
  • 积分-10分
  • 威望135点
  • 贡献值6点
  • 好评度76点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2005-05-02 14:59
在Ring3下
NTSTATUS        status;
OBJECT_NAME_INFORMATION    NameQuery;

//844是Explorer的ID
HANDLE hProcess=OpenProcess(PROCESS_ALL_ACCESS,FALSE,844);
if(hProcess==NULL)
{
printf(\"Open Process Failed!\\n\");
}
status=ZwQueryObject(hProcess,ObjectNameInformation,&NameQuery,sizeof(NameQuery),&dwReturn);
    if( !NT_SUCCESS( status ))
    {
        printf(\"ZwQueryObject wrong\\n\");
        CloseNTDLL();
        getchar();
        return -1;
    }

 printf(\"HANDLE:%08X         [%ws]\\n\",hProcess,NameQuery.Name.Buffer);

结果没有什么输出,怎么回事,我用ZwQueyObject查询其它句柄都可以
就是这个进程句柄不行.


结果没有什么输出 ? 说明一切ok了
琢磨悟真知
Astronomy
驱动小牛
驱动小牛
  • 注册日期2005-04-11
  • 最后登录2011-12-20
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望31点
  • 贡献值0点
  • 好评度7点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-05-02 15:52
汗~~~~大哥,但是我是想获取进程名

现在只有用ZwQueryInformationProcess获得ID,然后再用ToolHelp
列举并比较得到进程名,太麻烦了.

用ZwQueryObject查询hKey,hFile都能获得相应的文件名,怎么进程对象不行呢?期待高手中.
菜鸟也写Windows
游客

返回顶部