Difference between revisions of "Wiifuse server"
(linkify BRICK) |
|||
(8 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
− | + | {{cleanup}} | |
+ | {{DISPLAYTITLE:wiifuse_server}} | ||
+ | {{Infobox development tools | ||
+ | | title = wiifuse_server | ||
+ | | image = | ||
+ | | type = resource | ||
+ | | author = dhewg, #wiidev efnet/blitzed | ||
+ | | version = | ||
+ | | licence = | ||
+ | | website = | ||
+ | | discussion = | ||
+ | | download = Media:Wiifuse-0.2.0.tgz | ||
+ | | source = included | ||
+ | }} | ||
− | + | '''wiifuse_server''' is a Wii application that responds to [[wiifuse]] requests coming over a usbgecko adapter from a remote host. This allows you to mount the Wii internal NAND filesystem with full read/write access remotely on your computer. | |
− | |||
− | |||
− | |||
− | |||
− | + | '''<font color="#FF0000">WARNING</font>: watch exactly what you are doing, you can <font color="#FF0000">[[Brick | BRICK]]</font> your wii with this tool. use at your own risk.''' | |
− | [[ | + | == Prerequisites == |
+ | * An OS capable of running [[wiifuse]] | ||
+ | * [[wiifuse]] package (v0.2.0 or higher), the server described here is part of it | ||
+ | * USBgecko adapter | ||
+ | * Comprehension of the Wii internals | ||
− | [ | + | == Build == |
+ | A precompiled binary is included. | ||
+ | |||
+ | To compile the included code, you will need: | ||
+ | * [[devkitPPC]] and [[libogc]] | ||
+ | ** r14 or higher | ||
+ | |||
+ | The server code resides in "./server". Run <code>make</code> there. | ||
+ | |||
+ | == How-To == | ||
+ | You will need an identity to authenticate against the Wii's ES subsystem. An identity describes the access rights you have on the NAND filesystem. It consists of 3 files: | ||
+ | * [[certificate chain]] | ||
+ | * [[TMD]] | ||
+ | * [[Ticket]] | ||
+ | |||
+ | These 3 files are, e.g. part of a Wii image. You can use wiifuse and the included shell script to copy these from a data partition to the needed location: | ||
+ | |||
+ | ~/devel/wiifuse/ '''./wiifuse ~/zelda-tp.iso ~/fuse''' | ||
+ | ~/devel/wiifuse/ '''./server/get_identity.sh ~/fuse/data zelda''' | ||
+ | found 'The_Legend_of_Zelda_Twilight_Princess' (00010000525a4450) | ||
+ | `/home/dhewg/fuse/data/.internals/certs' -> `/usr/local/etc/wiifuse/00010000525a4450.certs' | ||
+ | `/home/dhewg/fuse/data/.internals/tmd' -> `/usr/local/etc/wiifuse/00010000525a4450.tmd' | ||
+ | `/home/dhewg/fuse/data/.internals/ticket' -> `/usr/local/etc/wiifuse/00010000525a4450.tik' | ||
+ | create symbolic link `zelda.certs' to `00010000525a4450.certs' | ||
+ | create symbolic link `zelda.tmd' to `00010000525a4450.tmd' | ||
+ | create symbolic link `zelda.tik' to `00010000525a4450.tik' | ||
+ | done | ||
+ | ~/devel/wiifuse/ '''fusermount -u ~/fuse''' | ||
+ | |||
+ | To mount the NAND filesystem with the zelda access rights on PC side: | ||
+ | |||
+ | ~/devel/wiifuse/ '''make -C server upload''' | ||
+ | make: Entering directory `/home/dhewg/devel/wiifuse/server' | ||
+ | /usr/local/devkitpro/devkitPPC/bin/geckoupload wiifuse_server.dol | ||
+ | geckoupload v0.0.3 | ||
+ | coded by dhewg, #wiidev efnet/blitzed | ||
+ | |||
+ | using /dev/ttyUSB0 | ||
+ | sending upload request | ||
+ | awaiting upload ack | ||
+ | sending file size (0x00023cc0) | ||
+ | sending data... | ||
+ | done. | ||
+ | make: Leaving directory `/home/dhewg/devel/wiifuse/server' | ||
+ | ~/devel/wiifuse/ '''./wiifuse -i zelda /dev/ttyUSB0 ~/fuse''' | ||
+ | title's data path is "/title/00010000/525a4450/data" | ||
+ | ~/devel/wiifuse/ '''cd ~/fuse/title/00010000/525a4450/data''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''ls -ln''' | ||
+ | total 90 | ||
+ | -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin | ||
+ | -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin | ||
+ | -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''umask''' | ||
+ | 022 | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''mkdir testdir''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''ls -ln''' | ||
+ | total 90 | ||
+ | -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin | ||
+ | -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin | ||
+ | drwxr-xr-x 0 4133 12337 0 Jan 1 1970 testdir | ||
+ | -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''cd testdir''' | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''umask 0''' | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''echo "could it be any more open?" > testfile''' | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''ls -ln''' | ||
+ | total 0 | ||
+ | -rw-rw-rw- 0 4133 12337 27 Jan 1 1970 testfile | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''cat testfile''' | ||
+ | could it be any more open? | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''chmod go-rw testfile''' | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''ls -ln''' | ||
+ | total 0 | ||
+ | -rw------- 0 4133 12337 27 Jan 1 1970 testfile | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''rm testfile''' | ||
+ | ~/fuse/title/00010000/525a4450/data/testdir/ '''cd ..''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''rmdir testdir''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''ls -ln''' | ||
+ | total 90 | ||
+ | -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin | ||
+ | -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin | ||
+ | -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''cp loader.bin cptest''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''ls -ln''' | ||
+ | total 135 | ||
+ | -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin | ||
+ | -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 cptest | ||
+ | -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin | ||
+ | -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''md5sum loader.bin cptest''' | ||
+ | e8bde0678cbe653a8a16152af8853be0 loader.bin | ||
+ | e8bde0678cbe653a8a16152af8853be0 cptest | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''rm cptest''' | ||
+ | ~/fuse/title/00010000/525a4450/data/ '''cd''' | ||
+ | ~/ '''fusermount -u fuse''' | ||
+ | |||
+ | == notes == | ||
+ | *don't use this if you don't understand it to 100% | ||
+ | *it depends on the identity which paths/files you can access and which not | ||
+ | |||
+ | == Credits == | ||
+ | * All the reversers out there. this tool just demonstrates a few new functions of [[libogc]] | ||
+ | * The usual suspects, without you this wouldn't be possible | ||
+ | |||
+ | == wiifuse+net == | ||
+ | * This modified version of wiifuse uses the network instead of usb gecko: http://emergent.unpy.net/01212803011 | ||
+ | |||
+ | [[Category:Development]] |
Latest revision as of 22:58, 2 February 2024
This article may require cleanup to meet WiiBrew's quality standards.
Reason: Needs cleanup |
wiifuse_server | |
General | |
---|---|
Author(s) | dhewg, #wiidev efnet/blitzed |
Type | Development resource |
Links | |
Download | |
Source Included |
wiifuse_server is a Wii application that responds to wiifuse requests coming over a usbgecko adapter from a remote host. This allows you to mount the Wii internal NAND filesystem with full read/write access remotely on your computer.
WARNING: watch exactly what you are doing, you can BRICK your wii with this tool. use at your own risk.
Prerequisites
- An OS capable of running wiifuse
- wiifuse package (v0.2.0 or higher), the server described here is part of it
- USBgecko adapter
- Comprehension of the Wii internals
Build
A precompiled binary is included.
To compile the included code, you will need:
The server code resides in "./server". Run make
there.
How-To
You will need an identity to authenticate against the Wii's ES subsystem. An identity describes the access rights you have on the NAND filesystem. It consists of 3 files:
These 3 files are, e.g. part of a Wii image. You can use wiifuse and the included shell script to copy these from a data partition to the needed location:
~/devel/wiifuse/ ./wiifuse ~/zelda-tp.iso ~/fuse ~/devel/wiifuse/ ./server/get_identity.sh ~/fuse/data zelda found 'The_Legend_of_Zelda_Twilight_Princess' (00010000525a4450) `/home/dhewg/fuse/data/.internals/certs' -> `/usr/local/etc/wiifuse/00010000525a4450.certs' `/home/dhewg/fuse/data/.internals/tmd' -> `/usr/local/etc/wiifuse/00010000525a4450.tmd' `/home/dhewg/fuse/data/.internals/ticket' -> `/usr/local/etc/wiifuse/00010000525a4450.tik' create symbolic link `zelda.certs' to `00010000525a4450.certs' create symbolic link `zelda.tmd' to `00010000525a4450.tmd' create symbolic link `zelda.tik' to `00010000525a4450.tik' done ~/devel/wiifuse/ fusermount -u ~/fuse
To mount the NAND filesystem with the zelda access rights on PC side:
~/devel/wiifuse/ make -C server upload make: Entering directory `/home/dhewg/devel/wiifuse/server' /usr/local/devkitpro/devkitPPC/bin/geckoupload wiifuse_server.dol geckoupload v0.0.3 coded by dhewg, #wiidev efnet/blitzed using /dev/ttyUSB0 sending upload request awaiting upload ack sending file size (0x00023cc0) sending data... done. make: Leaving directory `/home/dhewg/devel/wiifuse/server' ~/devel/wiifuse/ ./wiifuse -i zelda /dev/ttyUSB0 ~/fuse title's data path is "/title/00010000/525a4450/data" ~/devel/wiifuse/ cd ~/fuse/title/00010000/525a4450/data ~/fuse/title/00010000/525a4450/data/ ls -ln total 90 -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat ~/fuse/title/00010000/525a4450/data/ umask 022 ~/fuse/title/00010000/525a4450/data/ mkdir testdir ~/fuse/title/00010000/525a4450/data/ ls -ln total 90 -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin drwxr-xr-x 0 4133 12337 0 Jan 1 1970 testdir -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat ~/fuse/title/00010000/525a4450/data/ cd testdir ~/fuse/title/00010000/525a4450/data/testdir/ umask 0 ~/fuse/title/00010000/525a4450/data/testdir/ echo "could it be any more open?" > testfile ~/fuse/title/00010000/525a4450/data/testdir/ ls -ln total 0 -rw-rw-rw- 0 4133 12337 27 Jan 1 1970 testfile ~/fuse/title/00010000/525a4450/data/testdir/ cat testfile could it be any more open? ~/fuse/title/00010000/525a4450/data/testdir/ chmod go-rw testfile ~/fuse/title/00010000/525a4450/data/testdir/ ls -ln total 0 -rw------- 0 4133 12337 27 Jan 1 1970 testfile ~/fuse/title/00010000/525a4450/data/testdir/ rm testfile ~/fuse/title/00010000/525a4450/data/testdir/ cd .. ~/fuse/title/00010000/525a4450/data/ rmdir testdir ~/fuse/title/00010000/525a4450/data/ ls -ln total 90 -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat ~/fuse/title/00010000/525a4450/data/ cp loader.bin cptest ~/fuse/title/00010000/525a4450/data/ ls -ln total 135 -rw-r--r-- 0 4133 12337 29344 Jan 1 1970 banner.bin -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 cptest -rw-r--r-- 0 4133 12337 46143 Jan 1 1970 loader.bin -rw-r--r-- 0 4133 12337 16384 Jan 1 1970 zeldaTp.dat ~/fuse/title/00010000/525a4450/data/ md5sum loader.bin cptest e8bde0678cbe653a8a16152af8853be0 loader.bin e8bde0678cbe653a8a16152af8853be0 cptest ~/fuse/title/00010000/525a4450/data/ rm cptest ~/fuse/title/00010000/525a4450/data/ cd ~/ fusermount -u fuse
notes
- don't use this if you don't understand it to 100%
- it depends on the identity which paths/files you can access and which not
Credits
- All the reversers out there. this tool just demonstrates a few new functions of libogc
- The usual suspects, without you this wouldn't be possible
wiifuse+net
- This modified version of wiifuse uses the network instead of usb gecko: http://emergent.unpy.net/01212803011