对汽车闪存文件进行逆向工程

逆向工程 拆卸
2021-07-03 13:37:02

我是一个反汇编和代码的新手。我试图了解我卡车中的计算机是如何工作的(道奇 Ram 与 5.9 康明斯)。我知道车辆控制模块使用摩托罗拉 MPC555 处理器,我在这里找到了包含内存映射的文档:http : //www.nxp.com/assets/documents/data/en/product-briefs/MPC555PB.pdf

我很好奇我是否在正确的轨道上,因为当我将闪存文件加载到 IDA Pro 时,我将处理器设置为摩托罗拉 cpu32,因为我没有列出我的确切处理器并跳过建立我认为不正确的 ram。IDA Pro 还要求我找到 bin 的入口点,根据第 2 页,我假设该处理器是重置向量地址 0x100:

http://cache.freescale.com/files/microcontrollers/doc/app_note/AN2109.pdf

你们能告诉我我是否离开这里吗?感谢你给与我的帮助。

1个回答

嗯,这里有两个主要问题。

第一,虽然PPC555是摩托罗拉的,但它并没有使用68000衍生的CPU32核心,而是与IBM PowerPC核心共同开发的(我想摩托罗拉一度称它为RCPU32,可能是为了进一步混淆人们)。所以你应该选择“ppc”处理器而不是 CPU32 以获得正确的反汇编。

然后,原始固件文件没有任何元数据可以告诉 IDA 代码在哪里以及数据在哪里。因此,它可能会尝试扫描整个文件中可能的指令,如果它们看起来合法,则将其中的一些转换为代码。在您的情况下,它确实找到了一些函数,但显然重置向量周围的字节看起来有点不确定,因此它将它们转换为数据。不过,这很容易修复 - 只需取消定义 (U) 错误数据并在正确位置创建代码 (C)。