Line 9:
Line 9:
Ghidra can naturally import some IOS [[ARM Binaries]], specifically those that are just regular [[ELF]] files. However, it will produce bad results due to the use of undefined instructions for [[IOS/Syscalls|syscalls]]. A [https://gist.github.com/Pokechu22/caa73242a5969ff5dc413177fcb7f516 language definition] exists to fix this (though it will not produce the cleanest results since it doesn't know what various registers are used/changed by each syscall). <!-- TODO: I should create a more meaningful GitHub repo for this --> For ELFLOADER files (used for monolithic IOS versions, and the kernel in non-monolithic IOS versions), the file must be converted to a normal ELF file first (by removing everything before the ELF header, or using [[ARM_Binaries#Extract_ELF_file|the program on the ARM Binaries page]]). <!-- TODO: Write a loader -->
Ghidra can naturally import some IOS [[ARM Binaries]], specifically those that are just regular [[ELF]] files. However, it will produce bad results due to the use of undefined instructions for [[IOS/Syscalls|syscalls]]. A [https://gist.github.com/Pokechu22/caa73242a5969ff5dc413177fcb7f516 language definition] exists to fix this (though it will not produce the cleanest results since it doesn't know what various registers are used/changed by each syscall). <!-- TODO: I should create a more meaningful GitHub repo for this --> For ELFLOADER files (used for monolithic IOS versions, and the kernel in non-monolithic IOS versions), the file must be converted to a normal ELF file first (by removing everything before the ELF header, or using [[ARM_Binaries#Extract_ELF_file|the program on the ARM Binaries page]]). <!-- TODO: Write a loader -->
−
There is also a functionID database available to help disassemble an IOS kernel in Ghidra. It can be found [[Media:WiiIosKernelFunctionIds.zip|here]].
+
There is also a [[Media:WiiIosTypes.zip|data type archive]] and [[Media:WiiIosKernelFunctionIds.zip|FunctionID database]] available to use when disassembling IOS.
== Use with [[Hardware/Disc Drive|Disc Drive]] firmware ==
== Use with [[Hardware/Disc Drive|Disc Drive]] firmware ==