首页
社区
课程
招聘
[原创]ObRegisterCallbacks返回0xC0000022(拒绝访问)解决方案
2011-10-2 16:42 10613

[原创]ObRegisterCallbacks返回0xC0000022(拒绝访问)解决方案

2011-10-2 16:42
10613
最近写驱动,发现ObRegisterCallbacks这个总是函数调用不成功,在网上查了一下,发现使用这个函数对驱动有特殊的要求,必须使用特殊的签名才行!否则这个函数会返回0xC0000022(拒绝访问),逆向此函数可以看到以下是有关是否加签名的判断,

PAGE:00000001404AA75D                 call    MmVerifyCallbackFunction
PAGE:00000001404AA762                 cmp     eax, ebx
PAGE:00000001404AA764                 jz      short loc_1404AA7E1
PAGE:00000001404AA766
PAGE:00000001404AA766 loc_1404AA766:                          ; CODE XREF: ObRegisterCallbacks+11Bj
PAGE:00000001404AA766                 mov     rcx, [rsi+rbp+18h]
PAGE:00000001404AA76B                 cmp     rcx, rbx
PAGE:00000001404AA76E                 jz      short loc_1404AA779
PAGE:00000001404AA770                 call    MmVerifyCallbackFunction
PAGE:00000001404AA775                 cmp     eax, ebx
PAGE:00000001404AA777                 jz      short loc_1404AA7E1

开发调试时可以将
PAGE:00000001404AA764                 jz      short loc_1404AA7E1
PAGE:00000001404AA76E                 jz      short loc_1404AA779
这两行改为nop暂时使ObRegisterCallbacks调用成功,方便开发调试和暂时没签名的朋友

ObRegisterCallbacks这个函数是在Vista sp1之后的版本中添加的,可用来监控系统中对进线程句柄的操作,如打开进程、复制线程句柄等。

[培训]科锐软件逆向50期预科班报名即将截止,速来!!! 50期正式班报名火爆招生中!!!

收藏
免费 7
打赏
分享
最新回复 (5)
雪    币: 1407
活跃值: (17)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
liangdong 2011-10-2 22:39
2
0
http://d.hatena.ne.jp/xna/20080517/1210984806
雪    币: 208
活跃值: (148)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
xdklzy 1 2011-10-2 23:02
3
0
楼上不知道你现在试过这个方法没?这个方法我在网上也看到过,但我试了,win7 32位,64位都试了,不行呢
雪    币: 544
活跃值: (264)
能力值: ( LV12,RANK:210 )
在线值:
发帖
回帖
粉丝
KiDebug 4 2011-10-7 09:53
4
0
nt!MmVerifyCallbackFunction

PAGE:0056DC06                 push    ebx
PAGE:0056DC07                 push    [ebp+arg_0]
PAGE:0056DC0A                 call    _MiLookupDataTableEntry@8 ; MiLookupDataTableEntry(x,x)
PAGE:0056DC0F                 test    eax, eax
PAGE:0056DC11                 jz      short loc_56DC1C
PAGE:0056DC13                 test    byte ptr [eax+34h], 20h//设个20h不就好了么?
PAGE:0056DC17                 jz      short loc_56DC1C
PAGE:0056DC19                 mov     [ebp+var_4], ebx
雪    币: 274
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
wwwzhigang 2012-2-3 09:45
5
0
关注一下,准备使用
雪    币: 12
活跃值: (726)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
MagicFuzzX 2012-2-3 10:40
6
0
每次测试驱动都要patch。。
游客
登录 | 注册 方可回帖
返回