In memory of Ben “bushing” Byer, who passed away on Monday, February 8th, 2016.

Difference between revisions of "Babelfish"

From WiiBrew
Jump to navigation Jump to search
(Small changes and patches)
m (→‎Patches: renamed patched syscalls to names listed on IOS/Syscall)
 
(5 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
| title      = Babelfish
 
| title      = Babelfish
 
| author      = [[fail0verflow]]
 
| author      = [[fail0verflow]]
 +
| type        = system tool
 
| source      = https://github.com/fail0verflow/babelfish
 
| source      = https://github.com/fail0verflow/babelfish
 
}}
 
}}
  
'''Babelfish''' is a tool by [[fail0verflow]] that was the first full custom firmware (CFW) for the Wii. It works similar to installing a [[cIOS]] in every slot, except this tool actually makes no changes to the NAND. However, despite not modifying the NAND, it is impossible to access without first modifying the NAND, as this is an ARM program, which either needs to be installed as a cIOS (not recommended) or launched using [[BootMii]].
+
'''Babelfish''' is a tool by [[fail0verflow]] that was the first nonpersistent custom firmware (CFW) for the Wii. Previous custom firmware simply overwrote every [[IOS]], but was also primarily for piracy purposes, and therefore does not belong on WiiBrew. Babelfish works similar to installing a [[cIOS]] in every slot, except this tool actually makes no changes to the NAND.
  
 
== Technical explanation ==
 
== Technical explanation ==
Line 14: Line 15:
 
* Redirects any IOS reload to the custom loader
 
* Redirects any IOS reload to the custom loader
 
* Sends debug output to USBGecko
 
* Sends debug output to USBGecko
* Custom IPC hooks (made redundant by ahbprot):
+
* Custom IPC hooks:
** device_open
+
** IOS_Open
** new_thread
+
** IOS_CreateThread
** ppc_boot
+
** IOS_StartPPC
** arm_boot
+
** ios_boot
** load_elf
+
** LaunchRM
 +
 
 +
{{Navbox fail0verflow}}

Latest revision as of 06:14, 14 September 2022

Babelfish
General
Author(s)fail0verflow
TypeSystem tool
Links
Source

Babelfish is a tool by fail0verflow that was the first nonpersistent custom firmware (CFW) for the Wii. Previous custom firmware simply overwrote every IOS, but was also primarily for piracy purposes, and therefore does not belong on WiiBrew. Babelfish works similar to installing a cIOS in every slot, except this tool actually makes no changes to the NAND.

Technical explanation

To avoid modifying the NAND, Babelfish instead patches the IOS it is told to load on-the-fly such that when __IOS_LaunchNewIOS is called, the IOS loaded is replaced with the same loader stub that initially loaded Babelfish, maintaining the illusion of a cIOS network without causing permanent damage. For this reason, it was initially called "IOS Virus."

Patches

  • Redirects any IOS loaded by __IOS_LaunchNewIOS to Babelfish's loader stub
  • Redirects any IOS reload to the custom loader
  • Sends debug output to USBGecko
  • Custom IPC hooks:
    • IOS_Open
    • IOS_CreateThread
    • IOS_StartPPC
    • ios_boot
    • LaunchRM