Difference between revisions of "Working with binaries"
m (moved GNU ARM toolchain to Working with binaries: this needs to be more general) |
|||
Line 1: | Line 1: | ||
+ | ==GNU ARM toolchain== | ||
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. | 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== | + | ===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. | 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== | + | ===Assembling=== |
<pre> | <pre> | ||
arm-elf-as -o test.o test.asm | arm-elf-as -o test.o test.asm | ||
Line 11: | Line 12: | ||
</pre> | </pre> | ||
− | ==Disassembling== | + | ===Disassembling=== |
<pre> | <pre> | ||
arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm | arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm | ||
</pre> | </pre> | ||
− | == | + | ==IDA Pro demo== |
+ | ===IDA Pro 5.7 paid=== | ||
+ | This is the best version if you can pay. One of the main advantages over its demo version is that you can save project files. | ||
+ | ===IDA Pro 5.7 demo=== | ||
+ | This is the best version if you don't want to pay. It can't save or open binary files, but there is a workaround to opening binaries. | ||
+ | |||
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: | 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> | <pre> | ||
Line 22: | Line 28: | ||
arm-elf-objcopy --set-section-flags .data=code dump.elf | arm-elf-objcopy --set-section-flags .data=code dump.elf | ||
</pre> | </pre> | ||
+ | ===IDA Pro 4.9 freeware=== | ||
+ | This version is tempting to download but useless since it doesn't support ARM. | ||
==Helpful pages== | ==Helpful pages== |
Revision as of 00:38, 2 August 2010
Contents
GNU ARM toolchain
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
IDA Pro demo
IDA Pro 5.7 paid
This is the best version if you can pay. One of the main advantages over its demo version is that you can save project files.
IDA Pro 5.7 demo
This is the best version if you don't want to pay. It can't save or open binary files, but there is a workaround to opening binaries.
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
IDA Pro 4.9 freeware
This version is tempting to download but useless since it doesn't support ARM.