Skip to content

Commit dd2963b

Browse files
committed
Where the magic happens...
1 parent 490da2e commit dd2963b

File tree

3 files changed

+15
-12
lines changed

3 files changed

+15
-12
lines changed

README.md

+3-6
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,15 @@
11
# SafeB9SInstaller
22
Safe, simple, user-friendly installer for sighaxed FIRMs
33

4-
**DON'T USE THIS YET**
5-
6-
**Stop asking - it's done when it's done(tm)**
7-
84
For usage instructions, refer to [Plailect's guide](https://3ds.guide/).
95

106
## Credits
117
* **Normmatt**, for sdmmc.c / sdmmc.h
128
* **Cha(N)**, **Kane49**, and all other FatFS contributors for FatFS
13-
* **SciresM** for being the first fearless person to test this
9+
* **Myria** for the sighax bruteforcer and for finding the sighax (retail&dev) signature
10+
* **SciresM** for dumping boot9, creating boot9strap.firm and for being the first fearless person to test this
11+
* **hedgeberg** for her tireless efforts in dumping the bootrom
1412
* **TuxSH** for FIRM research and useful hints
15-
* **hedgeberg** for dumping the bootrom (when it's done)
1613
* **Plailect** for providing the guide and making this accessible to the common user
1714
* **stuckpixel** for his tireless behind-the-scenes work
1815
* **Gelex** for being of great help on countless occasions

source/common/common.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040
#define ENTRY_BRAHMA (1)
4141
#define ENTRY_GATEWAY (2)
4242

43-
// SafeSigHaxInstaller version
44-
#define VERSION "0.0.3"
43+
// SafeB9SInstaller version
44+
#define VERSION "0.0.5"
4545

4646
// input / output paths
4747
#define INPUT_PATH "0:/boot9strap"

source/safety/validator.c

+10-4
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,16 @@ const u8 sectorHash_dev[0x20] = {
4040
0x09, 0x54, 0xE3, 0x85, 0xDE, 0x47, 0x55, 0xAF, 0xC6, 0xCB, 0x1D, 0x8D, 0xC7, 0x84, 0x5A, 0x64
4141
};
4242

43-
// standard sighax signature hash - still unknown (= missing puzzle piece)
43+
// sighax signature hash - thanks go to Myria & SciresM for bruteforcing this
4444
const u8 sighaxHash[0x20] = {
45-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
46-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
45+
0x07, 0x8C, 0xC0, 0xCF, 0xD8, 0x50, 0xA2, 0x70, 0x93, 0xDD, 0xA2, 0x63, 0x0C, 0x36, 0x03, 0xCA,
46+
0x0C, 0x96, 0x96, 0x9B, 0xD1, 0xF2, 0x6D, 0xA4, 0x8A, 0xC7, 0xB1, 0xBA, 0xE5, 0xDD, 0x52, 0x19
47+
};
48+
49+
// sighax dev signature hash - thanks go to Myria & SciresM for bruteforcing this
50+
const u8 sighaxHash_dev[0x20] = {
51+
0xE6, 0x35, 0xC6, 0x36, 0xDC, 0x62, 0x59, 0xD6, 0x22, 0x8A, 0xF5, 0xBE, 0xD2, 0x84, 0x6E, 0x33,
52+
0x96, 0xD3, 0x78, 0x6E, 0xDF, 0x50, 0x3D, 0x11, 0x86, 0x84, 0x01, 0x59, 0x97, 0x50, 0x42, 0x26
4753
};
4854

4955
u32 ValidateFirmHeader(FirmHeader* header, u32 data_size) {
@@ -111,7 +117,7 @@ u32 ValidateSector(void* sector) {
111117

112118
u32 CheckFirmSigHax(void* firm) {
113119
FirmHeader* header = (FirmHeader*) firm;
114-
return (sha_cmp(sighaxHash, header->signature, 0x100, SHA256_MODE) == 0) ? 0 : 1;
120+
return (sha_cmp((IS_DEVKIT) ? sighaxHash_dev : sighaxHash, header->signature, 0x100, SHA256_MODE) == 0) ? 0 : 1;
115121
}
116122

117123
u32 CheckBoot9Strap(void* firm) {

0 commit comments

Comments
 (0)