Inline Hook(内联钩子注入)流程
- 构造跳转指令[JMP后的偏移量 = 目标地址 - 原地址 - jcc的指令长度]
- 在内存中找到欲HOOK函数地址,并保存欲HOOK位置处的前5个字节
- 将构造的跳转指令写入需HOOK的位置处
- 当被HOOK位置被执行时会转到自己的流程执行
- 如果要执行原来的流程,取消HOOK,还原被修改的字节
- 执行原来的流程
- 继续HOOK住原来的位置
Inline Hook(内联钩子注入)流程
基础知识
它们之间的关系:虚拟地址(VA) = 基地址(ImageBase) + 相对虚拟地址(RVA)
Windows PE
[[GET]]
async 函数可能包含 0 个或者多个