Difference between revisions of "Working with binaries"

From freemyipod.org
Jump to: navigation, search
(Created page with 'Compiling for the ARM platform requires a special toolchain. The GNU ARM toolchain has all the basic tools needed to build and examine software on the iPod. ==Obtaining== The GN...')
 
(Added section about IDA)
Line 14: Line 14:
 
<pre>
 
<pre>
 
arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm
 
arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm
 +
</pre>
 +
 +
==Preparing for IDA Pro demo==
 +
The IDA Pro demo can't open raw ARM files but it can open ELF files. We need to convert the raw binaries to ELF binaries as a workaround. Assuming the input file is called "dump.bin" and the output will be called "dump.elf", run these commands:
 +
<pre>
 +
arm-elf-objcopy --change-addresses=0xff810000 -I binary -O elf32-littlearm -B arm dump.bin dump.elf
 +
arm-elf-objcopy --set-section-flags .data=code dump.elf
 
</pre>
 
</pre>

Revision as of 04:34, 13 July 2010

Compiling for the ARM platform requires a special toolchain. The GNU ARM toolchain has all the basic tools needed to build and examine software on the iPod.

Obtaining

The GNU ARM toolchain can be downloaded from http://www.gnuarm.com/. You can either download source or binaries. Put the binaries in your system path.

Assembling

arm-elf-as -o test.o test.asm
arm-elf-ld -e 0 -Ttext=0 -o test.elf test.o
arm-elf-objcopy -O binary test.elf test.bin

Disassembling

arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm

Preparing for IDA Pro demo

The IDA Pro demo can't open raw ARM files but it can open ELF files. We need to convert the raw binaries to ELF binaries as a workaround. Assuming the input file is called "dump.bin" and the output will be called "dump.elf", run these commands:

arm-elf-objcopy --change-addresses=0xff810000 -I binary -O elf32-littlearm -B arm dump.bin dump.elf
arm-elf-objcopy --set-section-flags .data=code dump.elf