首页
社区
课程
招聘
[原创]inline hook和IDT hook结合
发表于: 2008-4-27 10:50 11581

[原创]inline hook和IDT hook结合

2008-4-27 10:50
11581

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的判断啊


[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 7
支持
分享
最新回复 (4)
雪    币: 209
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
不错不错。。。
2008-4-27 14:16
0
雪    币: 581
活跃值: (149)
能力值: ( LV12,RANK:600 )
在线值:
发帖
回帖
粉丝
3
刚才想这种方法干坏事很不错哦....特别是不用IDT HOOK....只修改一个字节...这样这个函数永远就不能正常执行了....重要的是蛮隐蔽..呵呵
2008-4-27 17:14
0
雪    币: 290
活跃值: (11)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
喜欢这样的简单,实用的文章。!!!
突出重点,,
让人有一种豁然开朗的感觉,,呵呵!!!支持!!!
2008-4-27 21:22
0
雪    币: 8175
活跃值: (6399)
能力值: ( LV12,RANK:207 )
在线值:
发帖
回帖
粉丝
6
秀呀! 很精炼的方法,前辈很厉害!
2019-12-19 17:10
0
游客
登录 | 注册 方可回帖
返回
//