首页
社区
课程
招聘
[旧帖] [求助]恢复SDDT 为什么虚拟机没事物理机蓝屏啊 求驱动高手分析下 0.00雪花
发表于: 2011-7-16 03:47 2076

[旧帖] [求助]恢复SDDT 为什么虚拟机没事物理机蓝屏啊 求驱动高手分析下 0.00雪花

2011-7-16 03:47
2076
我想调试个进程 该进程HOOK了NtOpenProcess 
看图:


因为它会检测到是否被恢复了 所以不能直接恢复

我想了个办法 就是在call 之前jmp 到我的函数去 执行代码:

DWORD dwEditCodeAddress,dwRetAddress,dwObOpenObjectByPointer;

#pragma PAGECODE
__declspec(naked)VOID MyNtOpenProcess()
{

  __asm
  {
    push    dword ptr [ebp-38h]
    push    dword ptr [ebp-24h]
    call dwObOpenObjectByPointer 
    mov     edi,eax
    lea     eax,[ebp-0B8h]
    push eax
    mov ebx,dwRetAddress
    jmp ebx //返回图上第三行红字那里

  }

}
#pragma PAGECODE
VOID Hook()
{
  UNICODE_STRING Us_ObOpenObjectByPointer,Us_NtOpenProcess;
  DWORD dwNtOpenProcess;
  //
  RtlInitUnicodeString(&Us_ObOpenObjectByPointer,L"ObOpenObjectByPointer");
  RtlInitUnicodeString(&Us_NtOpenProcess,L"NtOpenProcess");
  //
  dwObOpenObjectByPointer=(DWORD)MmGetSystemRoutineAddress(&Us_ObOpenObjectByPointer);//取得ObOpenObjectByPointer函数地址
  dwNtOpenProcess=(DWORD)MmGetSystemRoutineAddress(&Us_NtOpenProcess);//取得NtOpenProcess函数地址
  //
  dwEditCodeAddress=dwNtOpenProcess+0x21e; //NtOpenProcess+0x21e是要修改的地址
  dwRetAddress=dwNtOpenProcess+0x232; //这个是MyNtOpenProcess执行完毕后返回的地址

  __asm
  {    

      //去掉保护
      cli
      mov  eax,cr0
      and  eax,not 10000h
      mov  cr0,eax
      //修改NtOpenProcess
      mov ebx,dwEditCodeAddress
      mov al,0xe9
      mov byte ptr[ebx],al //往要修改的地址里写入jmp
      lea eax,MyNtOpenProcess
      sub eax,ebx
      sub eax,5
      mov DWORD ptr[ebx+1],eax //写入jmp的函数地址
      mov al,0x90
      mov byte ptr[ebx+5],al //因为要修改代码处是6字节而jmp MyNtOpenProcess是5字节所以剩下一字节写入个NOP指令
      //开启保护
      mov  eax,cr0
      or   eax,10000h
      mov  cr0,eax

  }
  
}
不知道为什么在虚拟机里加载了编译出来的驱动可行 可是我要调试的程序不能再虚拟机里运行
 在物理机不行 加载驱动后想打开OD就蓝屏了

这问题已经纠结了我好几天了 求高手帮个忙分析下啦

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (17)
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
2011注册的  起点很高啊。关注
2011-7-16 08:47
0
雪    币: 163
活跃值: (75)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
又是过保护~~你搭个windbg看看什么地方出的问题,或者把minidump下的.dmp拿出来看看或许也有点帮助
2011-7-16 09:15
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
话说  楼主用的什么工具啊!!!!!还蛮不错的

对于楼主的问题 我想问的是 虚拟机里面你多半没运行游戏  在物理机是不是运行游戏了  游戏有检测到之类的
2011-7-16 09:17
0
雪    币: 3107
活跃值: (1249)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
江湖传闻加载内核大法
2011-7-16 09:26
0
雪    币: 193
活跃值: (64)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
6
有两种可能:
1,可能涉及到了硬编码,所以换计算机出错
2,实体机上是不是开了游戏
不过没有看到硬编码的部分,是不是你调试的东西有检测?
2011-7-16 09:39
0
雪    币: 2422
活跃值: (3578)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
7
TP吧,可能是游戏有检测
2011-7-16 11:09
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
才没啊!!

我在虚拟机里加载了这驱动 打开OD可以调试任何进程

在物理机里呢 刚打开OD就蓝屏了

还没打开游戏测试呢
2011-7-16 12:27
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
在windbg里看不出有什么问题啊
2011-7-16 12:29
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
没有! 没有运行游戏

它驱动一共HOOK了6个函数,我已经无异常的恢复了5个 就剩下这个NtOpenProcess了

对于你的问题 工具是 Kernel Detective   http://bbs.pediy.com/showthread.php?t=95707
2011-7-16 12:38
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
终于解决了。。。。不过它还是会检测

2011-7-16 14:28
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
呵呵  恭喜哈。能不能分享下是什么原因呢?
2011-7-16 15:47
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
貌似我漏了个 sti 而已

又陷入一个更深的问题了~~
2011-7-16 16:12
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
  大哥真纠结   漏了个STI是什么意思啊
2011-7-16 17:01
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
你看我上面代码嘛 写入jmp指令下面

                        mov  eax,cr0
                        or   eax,10000h
                        mov  cr0,eax
                        sti

具体我不清楚 加上 sti就不蓝屏了 我驱动很菜鸟 可以说没入门

加载驱动之后呢 等几分钟后才会提示

没提示之前OD打开进程后马上提示 我觉得ring0 和ring3都有检测 呵呵
2011-7-16 17:09
0
雪    币: 130
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
送个邀请码啦

100Kx很难熬
2011-7-16 17:10
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
  我哦才100多KX
2011-7-16 17:30
0
雪    币: 204
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
查询了 STI是   表示将处理器标志寄存器的中断标志置1,允许中断
这个居然引发蓝屏 这种问题怎么找啊 真靠运气了 哈哈  汗.。。。。。。。。。
2011-7-18 08:40
0
游客
登录 | 注册 方可回帖
返回
//