首页
社区
课程
招聘
[分享]关于ObOpenObjectByPointer对某些对象的引用失败问题
发表于: 2011-9-21 11:48 4242

[分享]关于ObOpenObjectByPointer对某些对象的引用失败问题

2011-9-21 11:48
4242
现象:返回参数无效。

我需要对一个端口对象进行Object -> Handle。最开始这样处理:
        __try
        {
                Status = ObOpenObjectByPointer(Object,
                        OBJ_KERNEL_HANDLE,
                        (PACCESS_STATE) NULL,
                        (ObjectType == 0) ? PORT_ALL_ACCESS : THREAD_ALL_ACCESS,
                        NULL,
                        KernelMode,
                        &NewHandle
                        );
        }
        __except(EXCEPTION_EXECUTE_HANDLER)
        {
                Status = GetExceptionCode();
        }

返回参数无效,对照WRK中该函数的实现逻辑,发现任何参数逻辑上应该正确了
通过跟踪ObOpenObjectByPointer函数,发现如下:

805bccce 8b450c          mov     eax,dword ptr [ebp+0Ch]                        ----> 我的句柄属性 (OBJ_KERNEL_HANDLE,0x200)
805bccd1 854164          test    dword ptr [ecx+64h],eax                        ----> 检查指定的属性有效么? (ECX+64)
805bccd4 7421            je      nt!ObOpenObjectByPointer+0x8b (805bccf7)        ----> 不满足,跳转
805bccd6 8d856cffffff    lea     eax,[ebp-94h]                                        ----> AccessState释放判断
805bccdc 3945fc          cmp     dword ptr [ebp-4],eax
805bccdf 7508            jne     nt!ObOpenObjectByPointer+0x7d (805bcce9)
805bcce1 ff75fc          push    dword ptr [ebp-4]
805bcce4 e8914e0300      call    nt!SeDeleteAccessState (805f1b7a)
805bcce9 be0d0000c0      mov     esi,0C000000Dh                                        ----> 报参数无效
805bccee 8bcb            mov     ecx,ebx
805bccf0 e889a9f6ff      call    nt!ObfDereferenceObject (8052767e)               

以下为ECX+64:
   +0x060 TypeInfo         : _OBJECT_TYPE_INITIALIZER
      +0x000 Length           : 0x4c
      +0x002 UseDefaultObject : 0x1 ''
      +0x003 CaseInsensitive  : 0 ''
      +0x004 InvalidAttributes : 0x7b2                                          ----> OBJ_VALID_ATTRIBUTES

解决办法:
将OBJ_KERNEL_HANDLE修改为0

原因,部分对象的对象无效属性为全部的属性。该为0绕过这个检查

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

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