ARM Cortex-M0 - 如何(非侵入式)提取固件或修改可下载固件 (NuMicro NUC126)

逆向工程 固件 手臂 修补 嵌入式
2021-06-12 02:16:20

作为对 RE 的动手介绍,我决定采用一个小型、简单的嵌入式设备。事后看来,这可能是一个错误。这个“项目”已经消耗了我大约 2 个星期。然而,我决心看透这一切,老天爷。

这是我到目前为止所得到的:

  • 该设备的大脑是 NuMicro NUC126 (Cortex-M0) 微控制器。数据表

  • 该设备还包含一个 BY25Q64ASSIG SPI NOR 闪存(不相关?)(数据表

  • 固件下载是一个单独的 .bin 文件(如果需要,可用)。

  • 固件通过(自定义?)设备有问题供应商的 ISP 工具通过 USB 加载到设备。官方非供应商工具)。即使是 ISP 工具的源也是可用的。

  • 输出binwalk -B97640 0x17D68 CRC32 多项式表,小端没有其他的。

  • binwalk -E 表示没有压缩/加密:

    垃圾桶

    和 binvis.io 一样:

    在此处输入图片说明

  • strings 确实在使用设备时发现字符串可见

  • dfu-util -l并且dfu-util -d <VID:PID>似乎无法找到该设备,这告诉我它不使用 DFU。更有可能的是,我只是用错了。也许ISP工具在闪烁之前将其置于DFU模式?我希望以这种方式提取固件。

  • 在 IDA 中应用段映射,对齐向量,在重置向量中分析,???,没有利润(还)。

我的意图:

该设备带有 3 个“主题”。我要么想替换/编辑,要么添加更多。问题是,虽然我(认为我)已经正确拆卸了固件,如上所述,但我不知道从哪里开始。

问题:

  1. 由于我觉得我(有点)接近解决方案,所以我错过了什么吗?阅读汇编,当然。但我的意思是,主题只是位图风格的图像吗?它们是矢量吗?我怎么会知道?使用资源提取器扫描文件后,没有找到任何嵌入的图像。虽然我很好奇反汇编下载的固件是否会产生与我实际从芯片中提取固件并以这种方式反汇编的结果相同的结果。
  2. JTAG/UART 是绝对必要的吗?我问的原因是因为我发现的几乎所有指南都使用了类似的东西。我已经研究过 OpenOCD、Segger 等,我真的在努力避免购买额外的东西,但如果有必要的话。

谢谢大家的帮助!如果您需要更多信息,请询问!

0个回答
没有发现任何回复~