首页
社区
课程
招聘
[求助]为何HookZwLoadDriver处理后调用原函数失败
发表于: 2011-2-19 21:43 2738

[求助]为何HookZwLoadDriver处理后调用原函数失败

2011-2-19 21:43
2738
编程语言:Asm
编译工具:Masm32
程序功能:SSDT.HOOk.ZwLoadDriver.有驱动加载则通过读写映射内存方式通知R3程序,让程序决定是否允许加载.
问题: 整个HOOK过程以及处理过程都没出现问题.但在用户层返回允许加载指令后..驱动调用原函数地址.却无法成功加载驱动.

问题代码:
MyZwLoadDriver  Proc   DriverServiceName
    local   liDelayTime:LARGE_INTEGER
    local  ansi:ANSI_STRING
    or   liDelayTime.HighPart,-1   
    mov   liDelayTime.LowPart,-1000000
;    invoke  PsGetCurrentProcess
;    add  eax,dwImageFileNameOffset
;    mov  ecx,16
;    mov  edi,output
;    add  edi,8
;    mov  esi,eax
;    rep  movsb

    mov  eax,output
    mov  dword ptr [eax],1  ;置1 表示有驱动加载
    .while  1
      invoke  KeDelayExecutionThread,KernelMode,0,addr liDelayTime
      mov  eax,output
      mov  eax,[eax]
      .if  !eax    ;如果等于0则跳出 表示用户层已经处理完成
        .break
      .endif
    .endw
   
    mov  eax,output
    mov  eax,[eax + 4]  ;判断是否允许加载
    .if  eax == 1
      int  3
      push  DriverServiceName
      call  lpRealZwLoadDriver
    .elseif  eax == 0
      mov  eax,STATUS_ACCESS_DENIED
    .endif
    ret
   
MyZwLoadDriver  Endp

push  DriverServiceName
call  lpRealZwLoadDriver    ;这是问题代码 调用老返回错误 ..不知道那出的问题 大牛们帮忙看下

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

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