Difference between revisions of "Working with binaries"

From freemyipod.org
Jump to: navigation, search
(Replaced content with "==GNU ARM toolchain== Use gcc-arm-embedded from your Linux distribution package manager. == Ghidra == q3k maintains a Ghidra server with iPod binaries. Acc...")
(Tag: Replaced)
 
(5 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
==GNU ARM toolchain==
 
==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===
+
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===
+
== Ghidra ==
<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===
+
[[User:Q3k|q3k]] maintains a Ghidra server with iPod binaries. Access available on request.
<pre>
 
arm-elf-objdump -bbinary -marmv4 -D test.bin > test.asm
 
</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:
 
<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>
 
===IDA Pro 4.9 freeware===
 
This version is tempting to download but useless since it doesn't support ARM.
 
 
 
==Helpful pages==
 
http://chdk.wikia.com/wiki/GPL_Disassembling
 
 
 
http://www.dwelch.com/ipod/
 

Latest revision as of 17:44, 9 January 2023

GNU ARM toolchain

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

Ghidra

q3k maintains a Ghidra server with iPod binaries. Access available on request.