我正在从来自汽车(MT86 ECU)的 TriCore TC1766 中拆卸闪存转储。我的目标是识别数据区域中的表和标量,并确定它们的用途。我使用热图分析根据我发现的模式定位了 200 多个潜在表,并根据一些已知的表位置验证了我的结果(大部分)是有效的。表尺寸也是已知的。
由于我只使用反汇编程序(IDA Pro)盲目工作,我发现很难开始。我知道几个表和 2 个标量的地址,但在反汇编代码中找不到对它们的任何引用。
我知道每个表值和缩放器都需要以某种方式转换以获得正确的值。例如,位于 0x30D4C 的标量具有以下字节 F8 D9,当反转时,是一个整数 55,800,然后乘以 0.125 得到目标值 6975,即 ECU 将使发动机旋转的最大 RPM .
我在想,如果我能找到进行此转换的操作的位置,我就会有一个开始导航的地方。但是,我不确定这些操作将如何完成,它是乘法操作码还是位移位?我不知道在构建代码时使用了哪些编译器选项或使用了哪些优化。
我可以使用哪些技术来查找引用这些内存位置的位置?
如果我在 dword_208C8 上查找任何 XREF,则没有