Nissan ECU ROM reverse-engineering. 2: tables & axis data
HTML-код
- Опубликовано: 12 сен 2024
- Looking at typical 2D table lookup code and how to confirm axis locations (i.e. row / column values), and input value sources.
Nissan ROMs usually do a standard bilinear interpolation ( en.wikipedia.o... ), by locating each input value in its respective axis table, and computing a "fraction" when it inevitably falls between rows/columns. At the last step it uses those fractions and the 2D table to produce the final value.
Not mentioned in the video : the final value computed by tbl_lookup() is returned in register R0, as is almost always the case. That output is sometimes then copied to a RAM location which can be logged ; this, in conjunction with the two RAM locations of the input values, can confirm that the storage order of the table was correct.
Hey! Awesome to see you on RUclips Sharing this stuff. Can't wait to dive in!
Excellent video.
Seems like IDAPro is much more user friendly than Ghidra. Great video!