inline hook就是修改一个函数里面的几个字节为一条跳转指令,jmp到自己的函数中执行......

   IDT HOOK就是修改IDT表中正常的异常处理例程的入口函数,为自己的函数地址

   把这俩种思想结合起来就是""""一个字节钩子""""
   请看

    nt!NtOpenFile:
    80579fd0 8bff            mov     edi,edi
    80579fd2 55              push    ebp
    80579fd3 8bec            mov     ebp,esp

    对这个函数进行inline hook没什么问题.....但是我们这里只修改一个字节....所以不是inline hook  

    mov     edi,edi的机器码是8bff...........我们就把8b这个字节改下,就改成0xCD吧.....然后执行
    nt!NtOpenFile时候.....意味着执行了0xCD 0xFF 这个机器码表示的是INT 0XFF...呵呵.....然后就发生了异常......转到处理INT 0XFF的异常处理程序............我们可以IDT HOOK INT 0XFF.........所以就执行我们自己的函数了

     总结:::这种方法可以绕过现在很过工具的inline hook检测...因为我们只修改函数开头的一个字节...本质上说不是inline hook,没有jmp嘛.....

     但是修改了IDT.....随便DUMP一下IDT就知道是否异常拉..........所以检测IDT 还是很重要的...因为这张表对病毒来说还是可以利用的....除了这个""""一个字节钩子"""""还有键盘记录...禁止调试等..........

       接着你们就可以试下了...inline hook和IDT hook的代码看雪就有
   PS::我对HOOK基本是没什么兴趣....检测HOOK倒是有兴趣........所以在检测一个函数是否干净..看来还是要来个对0xCD的判断啊