首页
社区
课程
招聘
[原创]x64 win8.1 6+8 inlinehook 无效了。。。
发表于: 2013-5-7 15:25 4686

[原创]x64 win8.1 6+8 inlinehook 无效了。。。

2013-5-7 15:25
4686
之前我自己测试用的inlinehook引擎,在x64下面选择6+8个nop或者cc用于安全inline hook,现在到了win8.1,貌似不可用鸟,要换了 

1: kd> s fffff800`0094cb4f L?0x1000 cc cc cc cc cc cc
1: kd> s fffff800`0094cb4f L?0x1000 90 90 90 90 90 90
1: kd> s fffff800`0094cb4f L?0x1000 cc cc
fffff800`0094cc92  cc cc 44 88 4c 24 20 4c-89 44 24 18 53 56 57 41  ..D.L$ L.D$.SVWA
fffff800`0094db12  cc cc 48 89 5c 24 08 48-89 74 24 10 57 48 83 ec  ..H.\$.H.t$.WH..
1: kd> s fffff800`0094cb4f L?0x1000 90 90
1: kd> u fffff800`0094cb4f
Ntfs!NtfsAddCachedRunMult+0x77:
fffff800`0094cb4f cc              int     3
Ntfs!NtfsFsdDeviceControl:
fffff800`0094cb50 4889542410      mov     qword ptr [rsp+10h],rdx
fffff800`0094cb55 53              push    rbx
fffff800`0094cb56 56              push    rsi
fffff800`0094cb57 57              push    rdi
fffff800`0094cb58 4883ec70        sub     rsp,70h
fffff800`0094cb5c 488bf2          mov     rsi,rdx
fffff800`0094cb5f 33db            xor     ebx,ebx

要重写code了。顺便说下原先inlinehook的方法,还是很稳定的,和x86下面利用函数头前面5个nop指令是一个意思,即改写函数头2字节跳到-128~+126内任何一个有6字节nop的地方,再在4字节寻址范围内搜索8字节空间用于保存目标地址。即把所谓的14字节inlinehook拆分成6+8而已。

[培训]科锐逆向工程师培训第53期2025年7月8日开班!

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 131
活跃值: (98)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
2
沙发沙发沙发
2013-5-7 15:34
0
游客
登录 | 注册 方可回帖
返回