# HG changeset patch # User Michael Spacefalcon # Date 1396248567 0 # Node ID c883e60df239217907b2281d90b00e7052efe785 # Parent a39a38bbec4dd349d27846a30c7e1db1783a6746 arm7dis: README and header comments added diff -r a39a38bbec4d -r c883e60df239 arm7dis/README --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/arm7dis/README Mon Mar 31 06:49:27 2014 +0000 @@ -0,0 +1,26 @@ +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 diff -r a39a38bbec4d -r c883e60df239 arm7dis/armdis.c --- a/arm7dis/armdis.c Mon Mar 31 06:33:14 2014 +0000 +++ b/arm7dis/armdis.c Mon Mar 31 06:49:27 2014 +0000 @@ -1,3 +1,8 @@ +/* + * Lean and mean ARM7TDMI disassembler + * Written by Spacefalcon the Outlaw + */ + #include #include #include diff -r a39a38bbec4d -r c883e60df239 arm7dis/atcommon.c --- a/arm7dis/atcommon.c Mon Mar 31 06:33:14 2014 +0000 +++ b/arm7dis/atcommon.c Mon Mar 31 06:49:27 2014 +0000 @@ -1,3 +1,8 @@ +/* + * Lean and mean ARM7TDMI disassembler + * Written by Spacefalcon the Outlaw + */ + /* a few disassembly bits common between ARM and Thumb */ char *regnames[16] = {"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", diff -r a39a38bbec4d -r c883e60df239 arm7dis/common.c --- a/arm7dis/common.c Mon Mar 31 06:33:14 2014 +0000 +++ b/arm7dis/common.c Mon Mar 31 06:49:27 2014 +0000 @@ -1,3 +1,8 @@ +/* + * Lean and mean ARM7TDMI disassembler + * Written by Spacefalcon the Outlaw + */ + #include #include #include diff -r a39a38bbec4d -r c883e60df239 arm7dis/thumbdis.c --- a/arm7dis/thumbdis.c Mon Mar 31 06:33:14 2014 +0000 +++ b/arm7dis/thumbdis.c Mon Mar 31 06:49:27 2014 +0000 @@ -1,3 +1,8 @@ +/* + * Lean and mean ARM7TDMI disassembler + * Written by Spacefalcon the Outlaw + */ + #include #include #include