ok, I'm testing with etrex20/30 firmware.
fw_all.bin load the file in IDA Pro, rom in 0x80100000.
The problem is not you designate the entry point in the round.
I do not see the command to set it, if I see the command to see the entry point.
What firmware did you use?
The procedure is the following: name the entry point as "fw_base" and the run smart_disasm(), it will calculate the disasm region bounds and call smart_disasm_region().
Calling smart_disasm_region for a small part of the firmware is a bad idea, as pointers may be very distant from the corresponding functions.
This script is better than the previous because it has a very small amount of false positives. And false positives frequently make IDA disassemble data, not code, and then the disasm looks awful. The old script is especially awful for nuvis 34xx, 24x5 (when the firmware uses Thumb2 instructions).
UPD
Yeah, it does miss functions, can't yet explain why.
I thought that any function is either called indirectly (and then its address is stored as integer), or it's called directly by some function and then we can proceed recursively with the caller. By this reasoning the new script should disassemble all functions.
I'm aware that this reasoning is false sometimes (the italic part), as some functions are first copied to another location and only after they are called, also there is infinite amount of perverted ways to call a function (but only small amount of them is used by the compiler). But I'm hoping that it's false for not too many functions.
So, in conclusion, the new script is better because the disasm is clearer (no images/other data is disassembled!), while almost all usable functions are found.
Last edited by kunix; 22nd November 2012 at 01:31 PM.
ok, I'm testing with etrex20/30 firmware.
fw_all.bin load the file in IDA Pro, rom in 0x80100000.
The problem is not you designate the entry point in the round.
I do not see the command to set it, if I see the command to see the entry point.
If you loaded fw_all.bin with garmin-ida-loader then everything is set up automatically, you can call smart_disasm().
"entry point" is just the first command of the firmware (I meant to say this), it is named "fw_base" by garmin-ida-loader. Press "n" if you want to set/change the name.
Last edited by kunix; 22nd November 2012 at 04:37 PM.
Hi, ah ... thought there was no need to use the (IDA Pro loader)
now I understand.
The script checks that some functions (IDA Pro loader), misunderstood.
These are the ones found in my case.
Code:Please Login or Register to see the links
It's just functions which have pointers. There could be much more functions which are called by them. I tested the script on 37xx/24x5 firmwares and the result is satisfying, at least for my purposes. No scary megabyte-long lines of "disassembled" data which make no sense.
Hello let the latest firmware version 2.90, the Etrex 20to30 + JNX
To run a Etrex20 menu with some functions and a Etrex 30.
Test it, plz...
[Only registered and activated users can see links. ]
pelsta of spanish forum test it:
Code:Please Login or Register to see the links
Last edited by haute; 5th March 2013 at 10:51 PM.
I'm interested in getting the altitude dashboard happening in the Etrex 20. Does you software provide this?
Hi.
Firmware v3.20 working fine. Just to say that to use the compass is necessary in settings to disable the magnetic compass.
Тhank you, haute!
Regards: Alexander
Firmware version 3.30 is out.
Hoping you can mod this one without too much trouble as this one seems to have fixed the slow stop issue.
Bookmarks