首页
社区
课程
招聘
[原创]x64 ring3 inline-hook
发表于: 2014-1-3 15:17 19455

[原创]x64 ring3 inline-hook

2014-1-3 15:17
19455

标 题: 【原创】x64 ring3 inline-hook
作 者: 瀚海云烟
时 间: 2014-01-03,15:40:37
链 接: http://bbs.pediy.com/showthread.php?t=183367

几个星期前,都去年了,闲着也闲着,将32位的inline-hook修改成了64位的inline-hook
      x64下的inline-hook其实跟x86下的inline-hook没啥区别,都是拷贝前几个字节,然后塞入跳转指令,最后再调用原来的函数返回。
      原理一堆一堆的,看雪上各位大牛都说的很详细了,我就不细说了,我这里用的就是mov   rax,xxxx / jmp  rax 的方法跳转,碰到E8、E9、7X开头的指令就不进行hook。
// 指令机器码
BYTE TMP[COPY_CODE_LEN] = {
        0x48, 0xB8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,  // mov rax, 0
        0xFF, 0xE0 // jmp rax
};
      具体的看代码吧。
演示代码,注入notepad.exe 中 hook CreateFile结果截图如下:


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

上传的附件:
收藏
免费 6
支持
分享
最新回复 (17)
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
2
下载留名~~mark~
2014-1-3 15:51
0
雪    币: 45
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
下帖留名 看看先
2014-1-3 16:02
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
mark. 老爷留名。
2014-1-3 16:02
0
雪    币: 918
活跃值: (1875)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
1024楼主好人
2014-1-3 16:05
0
雪    币: 45
活跃值: (1359)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
mark
2014-1-3 18:01
0
雪    币: 773
活跃值: (442)
能力值: ( LV9,RANK:200 )
在线值:
发帖
回帖
粉丝
7
下载留名~~mark~
2014-1-3 20:03
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
新人,学习了
2014-1-3 20:42
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
9
好东西,刚好要找这方面的资料
2014-1-5 15:03
0
雪    币: 6538
活跃值: (4496)
能力值: ( LV7,RANK:110 )
在线值:
发帖
回帖
粉丝
10
再次来致谢
2014-1-5 19:18
0
雪    币: 185
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
Complagte 是啥意思?》
2014-1-6 09:18
0
雪    币: 74
活跃值: (748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
下载留名,marks
2014-1-8 20:04
0
雪    币: 79
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mark一下。。。
2014-3-5 14:32
0
雪    币: 2664
活跃值: (3401)
能力值: ( LV13,RANK:1760 )
在线值:
发帖
回帖
粉丝
14
好东西......
2014-3-5 14:37
0
雪    币: 39
活跃值: (158)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
下载留名
2014-3-5 14:50
0
雪    币: 492
活跃值: (51)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
16
请教楼主,可以实现任意位置inline hook么?看了好几款x64 上的inline hook都是不能有分支指令,检测到就不hook了..
2014-6-10 17:14
0
雪    币: 409
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
留个名?
2014-6-11 15:46
0
雪    币: 30
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
正需要,楼主好人
2014-7-4 03:40
0
游客
登录 | 注册 方可回帖
返回
//