Add more detailed instructions for dumping the executable

This commit is contained in:
Léo Lam 2021-01-25 11:30:09 +01:00
parent 122f9826ab
commit ac972eeae9
No known key found for this signature in database
GPG Key ID: 0DF30F9081000741
1 changed files with 4 additions and 1 deletions

View File

@ -6,8 +6,11 @@ To contribute to the project, you will need:
* Python 3 and pip for the diff script * Python 3 and pip for the diff script
* These Python modules: `capstone colorama cxxfilt pyelftools` (install them with `pip install ...`) * These Python modules: `capstone colorama cxxfilt pyelftools` (install them with `pip install ...`)
* The original 1.5.0 `main` NSO executable, converted to ELF format with [nx2elf](https://github.com/shuffle2/nx2elf). * The original 1.5.0 `main` NSO executable, converted to ELF format with [nx2elf](https://github.com/shuffle2/nx2elf).
* Copy it to data/main.elf -- it is used for the diff script and other tools. * To dump it, follow [the instructions on the wiki](https://zeldamods.org/wiki/Help:Dumping_games#Dumping_binaries_.28executable_files.29). If you only have 1.6.0 on your console, you should still dump it.
* Decompress the `main` NSO with [hactool](https://github.com/SciresM/hactool).
* If you have a 1.6.0 dump, use xdelta3 on the decompressed NSO to turn it into a 1.5.0 NSO. [The patch is available here.](https://s.botw.link/v150_downgrade/v160_to_v150.patch)
* The uncompressed NSO has the following SHA256 hash: `d9fa308d0ee7c0ab081c66d987523385e1afe06f66731bbfa32628438521c106` * The uncompressed NSO has the following SHA256 hash: `d9fa308d0ee7c0ab081c66d987523385e1afe06f66731bbfa32628438521c106`
* Copy it to data/main.elf -- it is used for the diff script and other tools.
Experience with reverse engineering optimized C++ code is very useful but not necessary if you already know how to decompile C code. Experience with reverse engineering optimized C++ code is very useful but not necessary if you already know how to decompile C code.