jackiefzj
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2024-03-01
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望135点
  • 贡献值0点
  • 好评度58点
  • 原创分0分
  • 专家分0分
  • 社区居民
阅读:1623回复:3

Win2000下,进程创建初期,ZwOpenProcess会失败?

楼主#
更多 发布于:2007-01-17 17:43
  PsSetCreateProcessNotifyRoutine做进程监控时,得到进程的ID,使用ZwOpenProcess打开。
在winXP和win2003上没问题,但在win2000上则失败,返回错误码STATUS_INVALID_PARAMETER

是否2000和xp有着不同的进程打开机制?

代码:
CLIENT_ID        ClientId;
OBJECT_ATTRIBUTES ObjectAttributes;

memset(&ClientId, 0x0, sizeof(CLIENT_ID));
ClientId.UniqueProcess = (HANDLE)ProcId;
ClientId.UniqueThread = 0;

memset(&ObjectAttributes, 0x0, sizeof(OBJECT_ATTRIBUTES));
ObjectAttributes.Length = sizeof(OBJECT_ATTRIBUTES);

ntStatus = ZwOpenProcess(
    &ProcessHandle,
    PROCESS_ALL_ACCESS, 
    &ObjectAttributes,
    &ClientId);
if(!NT_SUCCESS(ntStatus))
{
    dprintf("ZwOpenProcess error = 0x%.8x! \n", (ULONG)ntStatus);
    return FALSE;
}
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
沙发#
发布于:2007-01-17 18:14
晕死,直接lookup出eprocess,handle个什么~
没有战争就没有进步 X3工作组 为您提供最好的军火
jackiefzj
驱动牛犊
驱动牛犊
  • 注册日期2004-10-28
  • 最后登录2024-03-01
  • 粉丝0
  • 关注0
  • 积分495分
  • 威望135点
  • 贡献值0点
  • 好评度58点
  • 原创分0分
  • 专家分0分
  • 社区居民
板凳#
发布于:2007-01-18 10:24
一直在试着取进程路径更安全的方法
进程创建时PEB没被填充,所以原来想用ZwQueryInformationProcess() -> ProcessImageFileName来取进程的全路径。
但2000下面取handle失败,其实ZwOpenProcess()内部也是先lookup再ObOpenObjectByPointer。
刚刚又查了2000的源代码,竟然发现2000下ZwQueryInformationProcess()根本没ProcessImageFileName这一信息块,无语中。。。
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-01-18 10:41
引用第2楼jackiefzj2007-01-18 10:24发表的“”:
一直在试着取进程路径更安全的方法
进程创建时PEB没被填充,所以原来想用ZwQueryInformationProcess() -> ProcessImageFileName来取进程的全路径。
但2000下面取handle失败,其实ZwOpenProcess()内部也是先lookup再ObOpenObjectByPointer。
刚刚又查了2000的源代码,竟然发现2000下ZwQueryInformationProcess()根本没ProcessImageFileName这一信息块,无语中。。。


lookup应该不会失败,但是后面Handle化可能失败(嘿嘿)。
查那个还是老实的使用SectionHandle ->SectionObject->SegMeXX->xxxlist->FileObject->FileName
没有战争就没有进步 X3工作组 为您提供最好的军火
游客

返回顶部