首页
社区
课程
招聘
[求助]恳请大牛指点 OpenThreadNT 一直打不开句柄
发表于: 2010-1-18 06:04 4530

[求助]恳请大牛指点 OpenThreadNT 一直打不开句柄

2010-1-18 06:04
4530
HANDLE OpenThreadNT(ACCESS_MASK dwDesiredAccess,
                    HANDLE  bInheritHandle,
                    HANDLE dwThreadId)
{
    OBJECT_ATTRIBUTES   ObjectAttributes;
    CLIENT_ID           ClientId;
    HANDLE              hThread;
    NTSTATUS            Status;
       
    InitializeObjectAttributes(&ObjectAttributes, NULL, 0, NULL, NULL);
       
    if (bInheritHandle)
        ObjectAttributes.Attributes = OBJ_INHERIT;
       
    ClientId.UniqueProcess = NULL;
    ClientId.UniqueThread = (HANDLE)dwThreadId;
       
    Status = NtOpenThread(&hThread,             // Thread handle
                dwDesiredAccess,      // Access to thread object
                &ObjectAttributes,    // Object attributes
                &ClientId);           // Client Id
       
    if (!NT_SUCCESS(Status))
    {
       //SetLastError(RtlNtStatusToDosError(Status));
        return NULL;
    }
       
    return hThread;

hThread=OpenThreadNT(THREAD_ALL_ACCESS,FALSE,IDThread);

确定传入的 线程TID 完全正确   就是 句柄 返回0 NtOpenThread 执行返回 8 要疯掉了恳请大牛指点

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
补充 这是在驱动的代码 不是 R3 调用
2010-1-18 06:07
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
?NtOpenThread是nt!NtOpenThread还是nt!ZwOpenThread
2010-1-18 09:51
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
NTSTATUS NtOpenThread(

  OUT PHANDLE             ThreadHandle,
  IN ACCESS_MASK          AccessMask,
  IN POBJECT_ATTRIBUTES   ObjectAttributes,
  IN PCLIENT_ID           ClientId );

参数 不会有什么问题  代码 左看右看 也没什么问题啊  调式 就是 失败 很迷茫
2010-1-18 11:09
0
雪    币: 412
活跃值: (30)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
ZwOpenThread
2010-1-18 11:22
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
请问大牛

我这是在 驱动中调用  调用 ZwOpenThread 和 调用 NtOpenThread 有不同嘛?

那再请问 就算 调用 ZwOpenThread  成功了 那为什么我的调用 NtOpenThread

就失败了呢? 很搞不明白 请多指点 谢谢拉
2010-1-18 11:33
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
嗯 现在真的好挫了  重新 写了份 驱动代码  在驱动入口 直接 调用 竟然没问题了

在回到 原先的那份代码 又是这个问题 太囧了
2010-1-18 11:56
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
找到问题了 代码没有任何问题 问题在于 调用的时机

驱动直接 入口调用 正常 但是换成 SSDT HOOK 中调用 就是失败 郁闷

那在HOOK  中 该 怎么操作了  郁闷了
2010-1-18 12:50
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
实在没有办法 尝试了 大牛的 提示 太牛叉了 竟然可以了

万分感谢~!!!!!有眼不识泰山啊
2010-1-18 14:01
0
雪    币: 290
活跃值: (20)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
Ntxxx的函数都会参数检查,如果KeGetPreviousMode是usermode就会做参数检查
2010-1-18 14:24
0
雪    币: 279
活跃值: (60)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
感谢大牛解惑 不胜感激
2010-1-20 23:54
0
游客
登录 | 注册 方可回帖
返回
//