-
-
[原创]x64 ring3 inline-hook
-
发表于:
2014-1-3 15:17
19298
-
[原创]x64 ring3 inline-hook
标 题: 【原创】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结果截图如下:
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法