Creport: Difference between revisions
No edit summary |
|||
Line 45: | Line 45: | ||
[2.1.0+] It also blacklists the creport-sysmodule title-id. Then, if inarg_flag(see above) is set to '1', all title-ids are blacklisted except for the following whitelist: | [2.1.0+] It also blacklists the creport-sysmodule title-id. Then, if inarg_flag(see above) is set to '1', all title-ids are blacklisted except for the following whitelist: | ||
* | * 0100704000B3A000 "Snipperclips" (Game) | ||
* | * 01007EF00011E000 "The Legend of Zelda: Breath of the Wild" | ||
* | * 01009B500007C000 "ARMS" | ||
* | * [2.3.0+] 0100C5E003B40000 "ARMS Global Testpunch" | ||
* | * 0100D87002EE0000 "Snipperclips - Cut it out, together!" | ||
* | * 0100F8F0000A2000 "Splatoon 2" (EUR) | ||
* | * 010000A00218E000 "Splatoon 2 Global Testfire" | ||
* | * 01000320000CC000 "1-2 Switch" | ||
* | * 0100152000022000 "Mario Kart 8 Deluxe" | ||
* | * 01003BC0000A0000 "Splatoon 2" (USA) | ||
* 01003C700009C000 "Splatoon 2" (JPN) | |||
This is probably because of privacy concerns (software keyboard + browser could contain passwords and personal info). | This is probably because of privacy concerns (software keyboard + browser could contain passwords and personal info). | ||
The above whitelist handling is probably so that only Nintendo (published) applications get full exception info reported, since crash-reports for other applications probably(?) wouldn't be shared with third-parties. | |||
For all other title-ids, it generates a random AES-128 key and CTR using <code>csrng</code>. | For all other title-ids, it generates a random AES-128 key and CTR using <code>csrng</code>. | ||
Line 99: | Line 102: | ||
** Following the two funcs mentioned above, prev code: <code>if(<loadedval> == 1 && (u8 *(ptr+1) & 1) == 0)<call func>; return;</code> New code: <code>if(inarg_flag != '1' && (u8 *(ptr+1) & 1) == 0 && ((u8 *(ptr+0) ^ 0x1) & 0x1) == 0)<call func>; return;</code> | ** Following the two funcs mentioned above, prev code: <code>if(<loadedval> == 1 && (u8 *(ptr+1) & 1) == 0)<call func>; return;</code> New code: <code>if(inarg_flag != '1' && (u8 *(ptr+1) & 1) == 0 && ((u8 *(ptr+0) ^ 0x1) & 0x1) == 0)<call func>; return;</code> | ||
** <call func> here is throw_fatalerr(ptr+4). The above second block basically changed the conditions required for throwing fatal-error. For example, fatal-error is no longer thrown when applications crash. | ** <call func> here is throw_fatalerr(ptr+4). The above second block basically changed the conditions required for throwing fatal-error. For example, fatal-error is no longer thrown when applications crash. | ||
== [[2.3.0]] == | |||
Exactly the following code was changed: | |||
Only change was adding a titleID to the above whitelist. |