These are some GPL tools for manipulating ARM code.
Since not everyone likes IDA (either due to annoyances in the demo version[1], cost of the full version[2], or IDAPython slowness), I'm listing here the GPL alternatives for disassembling.
There may be a lot of good tools floating around; if you know about them, please add them here.
CHDK GPL tools[]
Main source of inspiration :)
GPL_Tools/ARM_console[]
Work in progress. This will integrate all my analysis scripts.
You'll be able to use it for browsing the dumps without IDA, analyzing the firmware in NumPy, comparing firmwares for different cameras, and much more.
[]
I've developed some scripts compatible with IDC files (they don't require IDA, but can use databases saved in IDC format):
- GPL_Tools/disasm.py - disassemble with objcopy/objdump and annotate the dump with data from an IDC database.
- GPL_Tools/match.py - match functions and data addresses between a bunch of dumps and IDC databases.
- GPL_tools/idc2stubs.py - create a stubs-*.S file from an IDC database.
Those are being integrated in GPL_Tools/ARM_console.
Maybe related: arm-disasm.py
GPL scripts from CHDK[]
- disassemble.pl. It just works:
disassemble.pl 0xff810000 dump.bin
- stubs2dis.pl: annotate disassemblies with data from stubs-*.S files. Didn't test it yet.
GPL scripts from Trammell Hudson[]
Related: Emulation