主要观点:
- 公开发布了一个与dis86一起构建的混合运行时 Hydra,用于逆向工程工作,源代码在 github 上。
- 介绍了构建 Hydra 的原因,如在 x86 - 16 平台上验证代码、处理复杂的地址空间等。
- 阐述了 Hydra 的工作原理,包括使用 dosbox - x 模拟器执行 x86 - 16 部分,通过函数钩子集成原生 Aarch64 代码,提供注释系统和调用栈跟踪等功能。
- 提到了 Hydra 的一些局限性,如 Aarch64 堆栈独立、dosbox - x 无法中断 Aarch64 代码等。
- 表示该方法对项目需求效果较好,希望分享给他人,并提供了获取更多信息的途径。
关键信息:
- Hydra 是混合运行时,可执行 x86 - 16 和 Aarch64 混合的应用。
- x86 - 16 地址空间小且复杂,有 NEAR 和 FAR 两种调用类型。
- 编译器种类多且难获取,项目中似乎由 Borland C++编译。
- 通过函数钩子将 Aarch64 代码集成到 x86 - 16 执行中。
- Hydra 提供注释系统、调用栈跟踪等功能。
- 存在一些局限性,如堆栈独立等。
重要细节:
- 地址空间虽指定为 32 位但实际约 1MB,有大量预留区域。
- 函数钩子可对 x86 - 16 机器状态进行多种操作。
- 注释系统可定义函数名、全局变量等。
- 调用栈跟踪可方便找到和注释有趣函数。
- 局限性包括堆栈独立、dosbox - x 限制等。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。