xorvoid

主要观点:

  • 公开发布了一个与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 限制等。
阅读 19
0 条评论