Working with binaries: Difference between revisions

From freemyipod
Jump to navigation Jump to search
Cmwslw (talk | contribs)
m moved GNU ARM toolchain to Working with binaries: this needs to be more general
No edit summary
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
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.
==GNU ARM toolchain==


==Obtaining==
Use gcc-arm-embedded from your Linux distribution package manager.
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==
<pre>
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
</pre>
 
==Disassembling==
<pre>
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>
 
==Helpful pages==
http://chdk.wikia.com/wiki/GPL_Disassembling
 
http://www.dwelch.com/ipod/

Latest revision as of 21:44, 25 September 2025

GNU ARM toolchain

Use gcc-arm-embedded from your Linux distribution package manager.