首页
社区
课程
招聘
[求助]IDTHOOK 死活蓝屏
发表于: 2012-4-18 23:51 5080

[求助]IDTHOOK 死活蓝屏

2012-4-18 23:51
5080
HOOK 是做的替换上下16位的IDT地址  不是做的INLINE 五字节那种

下面是替换的HOOK 函数

PEPROCESS IDTperocess;

_declspec(naked)
VOID Myint3Hook()
{
        __asm
        {
                        pushad // save all general purpose registers
                        pushfd // save the flags register

        }

         __asm
         {
                 popfd // restore the flags
                 popad // restore the general registers
         }

         _asm jmp Real_int3addr;

}
这么搞一切正常 不蓝...........

但是例如下面要是随便做点什么 就蓝。。。。很头疼 求大牛指点下
_declspec(naked)
VOID Myint3Hook()
{
        __asm
        {
             pushad                
             pushfd
        }

         IDTperocess =PsGetCurrentProcess();
         KdPrint(("%s",(ULONG)IDTperocess+0x174));
         __asm
         {
                     popfd
                     popad        
                 }

         _asm jmp Real_int3addr;

}

HOOK里面不是已经保存的现场了吗  那为什么随便搞点什么都蓝呢   求大牛指点下

[课程]Linux pwn 探索篇!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 191
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
就算不打印什么信息  就一条  PsGetCurrentProcess(); 也会蓝。。。。

真的不懂了。。。。。。
2012-4-18 23:54
0
雪    币: 8865
活跃值: (2379)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
3
cs,ds,fs都不换直接...~
2012-4-19 04:56
0
雪    币: 191
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
V叔

是 es ds fs

偶错了 V叔威武
2012-4-19 05:50
0
雪    币: 230
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
pushad
   pushfd
   push fs
   mov bx,30
   mov fs,bx
   push ds
   push es

////////////你想做的事情!

   pop es
   pop ds
   pop fs
   popfd
   popad
2012-4-22 03:57
0
雪    币: 31
活跃值: (43)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
fs=30是干嘛?好奇怪哎。
2012-4-22 11:07
0
游客
登录 | 注册 方可回帖
返回
//