Ghidra doesn't work well against dropbox binary
See original GitHub issueSummary: Ghidra 9.0.4 doesn’t work well against the dropbox
binary.
Versions used: Ghidra 9.0.4 on Ubuntu 18.04 LTS host.
Target binary: https://clientupdates.dropboxstatic.com/dbx-releng/client/dropbox-lnx.x86_64-73.4.118.tar.gz (open the 23 MB dropbox
binary contained in this archive).
Reproduction steps: Navigate to _PyEval_EvalFrameDefault
function and compare the Ghidra disassembly with the corresponding disassembly from IDA Freeware .
Problem: It seems that Ghidra is unable to parse this function completely (the disassembly is incomplete). It also doesn’t recover the switch case labels.
I am attaching from IDA Freeware for this function. IDA Freeware works very well (and automatically) against this function and is able to recover all the switch case labels.
Is there a way to get similar results from Ghidra?
I am hoping to use Ghidra in my work, if possible.
Issue Analytics
- State:
- Created 4 years ago
- Comments:8 (4 by maintainers)
Another thing you can experiment with is changing the image base when importing the binary. This binary is PIC, and Ghidra defaults to forcing it away from 0x00000 to 0x100000, but the DWARF side of things isn’t keeping up with that. If you change the image base back to 0 (which can cause its own small difficulties for other things in Ghidra), the dwarf data will line up.
Doing so helped a lot.
The disassembly is not broken now and it seems that switch case labels were also recovered.
Time to learn some GHIDRA scripting to port this IDA script to GHIDRA.
Thank you!