需求
- 跨平台(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
- 效果甚好