跨平台hook框架

大类
Util
技术标签
开发-HookPatch-Windows
开发-HookPatch-Mac
优先级
Medium
开始日期
Jun 12, 2021
状态
Maintaining
Public
Public
最后更新
Jan 4, 2022

需求

  • 跨平台(Linux、MacOS、Windows)
  • 跨架构(x86、x64、ARM32、ARM64)
 

候选列表

  • Dobby
    • 对Windows支持奇差无比
    • x86反汇编部分全是bug
  • AsWhale
    • 不支持Darwin hook
  • Detours
    • 反汇编引擎极其优越
    • 不支持Darwin Hook
 

各种尝试

  • Dobby
    • 尝试修复了Windows支持
    • 引入了detours作为x86反汇编引擎
    • 仍然全是bug,导致IDA闪退
  • Detours
    • 通过编写Linux、Darwin的兼容层使其支持Mac
    • 问题:Darwin不能让一个页面同时可写可执行
      • 针对于Trampoline页面, 直接将其变为RW后在变为RX
      • 针对于目标页面,我们劫持跳转指令生成函数,并随后统一remap到目标page
    • 效果甚好
    •