ECU 调整和逆向工程

逆向工程 固件 嵌入式 固件分析
2021-06-11 15:07:59

我是 ECU(或芯片)调整概念的新手,我试图了解那里发生了什么。

我理解这个概念和目标,但我很难理解那里实际发生了什么。

据我了解,调优过程是:

  • 从汽车下载ECU固件。
  • 修改一些常量值(在地图中)。
  • 将修改后的 ECU 写回汽车。

但是,我不明白下载的 ECU 的格式是什么——它只是一个普通的固件吗?我发现很多网站像这样它提供给ECU下载文件,但我无法识别的格式-它不看我像任何固件,而我不能确定在所有我试过文件的任何CPU架构。此外,文件的大小几乎总是 512KB、1024KB 或 2048KB,这对于固件来说不是很典型。

从这些站点下载文件时,我看到其中许多文件被引用为 ori(原始?),其中一些引用为 map,一些引用为 bdm。(不用说,网站中关于格式的信息并不多......)。这些类型是什么意思?

如果我想对 ECU 的固件进行逆向工程 - 我应该查看那些文件吗?

2个回答

这是一个困难的问题,因为没有通用的答案。由 OEM 和 ECU 供应商在设计阶段共同定义的 FW 布局,在 ECU 和 OEM 之间可能会有所不同。每个 ECU 在闪存/ROM/Eeprom/其他 NVM 中都有自己的固件和常量参数集,OEM 和供应商可以在这些 NVM 中调整 ECU 行为。

但是,从 ECU 获取此固件或参数集并不容易。通常,这些 ECU 的调试端口是安全的,大多数时候只能通过UDS使用 OEM 编程工具对特殊类型的固件进行编程为了避免读取固件的这种情况,通常不会实现 RequestUpload 例程。

通常还包括在线和离线完整性和真实性检查,因此您不能简单地下载/修改/上传新的参数集到 ECU,因为它有缺陷。

我真的不知道 ECU 调整在现实生活中是如何工作的,但我认为这些人使用了 OEM 的工具,或者至少他们颠倒了它们而不是 ECU。

或者,ECU 调整是通过用另一个具有适当调整软件的单元替换原始 ECU 来完成的。例如:https : //www.maxxecu.com/products/race