逐步执行 ARM 固件映像

逆向工程 艾达 部件 固件 手臂
2021-07-10 18:04:18

我有一个二进制固件映像,其中包含一个我很难理解的例程。我想一步一步地完成这个加密例程,以便我能更好地理解它。

我能够从设备的内存中获取所有数据:固件、选项库、包含要加密的数据的 RAM 等。所有数据都是原始字节。

我知道加密子程序的位置,并想在那时开始逐步执​​行程序。我已经尽可能在IDA PRO中分析了固件。

该设备有一个 ARM Cortex-M3,它使用 ARMv7-M 指令集。这是设备的
数据表

这样做的好方法是什么?

更新 1 - 2016 年 9 月 19 日

我选择只模拟代码片段。但是,我有点不知道选择什么“配置”(配置 QEMU:第 5 步)。谷歌搜索“多功能”或“集成商”板时出现的信息并没有使它更清楚。

如何确定要选择的配置?

1个回答

您可以通过以下方式调试甚至逐步执行:

  • 模拟代码片段您可以在hexblog 中找到使用 QEMU 进行代码片段仿真的详细步骤在这种方法中,您必须将内存和寄存器值设置为正确的值,这在某些时候可能具有挑战性。
  • 模拟整个固件devttsy0博客中有一篇关于使用 QEMU 进行固件仿真的非常好的博客文章因为在这种情况下您模拟整个固件,所以您不必为调试设置任何运行时值。但是,您可能必须模拟 nvram 和其他特定于硬件的功能。