FreeCalypso > hg > freecalypso-reveng
view arm7dis/README @ 179:d0e8cdb82117
leo-obj/l1_custom_int/l1_cust.hints: created
author | Michael Spacefalcon <msokolov@ivan.Harhan.ORG> |
---|---|
date | Fri, 11 Jul 2014 00:59:50 +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