FreeCalypso > hg > freecalypso-reveng
view arm7dis/README @ 361:5d1c186cc3cf
fluid-mnf/target-bin/cmd39.m0: hand-crafted
by copying cmd.m0 and manually patching the S3 record that contains
the 16-bit word at 0x1140, the literal pool DPLL init constant
used by hardware_init_calypso()
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sat, 14 Mar 2020 19:33:52 +0000 |
parents | c883e60df239 |
children |
line wrap: on
line source
The present package is a basic standalone disassembler for the ARMv4T instruction set implemented on the ARM7TDMI CPU core, commonly used in classic cellular phone baseband processors. The armdis utility interprets an arbitrary raw binary image (i.e., one being reverse-engineered) as 32-bit ARM instructions; thumbdis interprets the same image as 16-bit Thumb instructions. The form in which the disassembly output is presented is a look-and-feel copycat of GNU objdump: armdis is meant to replace objdump -b binary -m arm -EL -M reg-names-std -D unknown-firmware.bin and thumbdis is meant to replace objdump -b binary -m arm -EL -M reg-names-std -M force-thumb -D unknown-fw.bin Aside from sparing the operator from having to remember all those options every single time, and aside from being an independent from-scratch implementation (lean and mean, only knows how to disassemble those instructions which are meaningful on ARM7TDMI), these tools have one other feature which partly prompted me to write them: whenever *dis disassembles a PC-relative ldr instruction, it shows the value pulled from the literal pool on that ldr line. In the reverse engineering jobs I've had to do, it has been a very valuable feature for me. Happy hacking, Spacefalcon the Outlaw