Changes

364 bytes added ,  20:42, 3 August 2017
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:
   −
* 0x0100704000B3A000 "Snipperclips" (Game)
+
* 0100704000B3A000 "Snipperclips" (Game)
* 0x01007EF00011E000 "The Legend of Zelda: Breath of the Wild"
+
* 01007EF00011E000 "The Legend of Zelda: Breath of the Wild"
* 0x01009B500007C000 "ARMS"
+
* 01009B500007C000 "ARMS"
* 0x0100D87002EE0000 "Snipperclips - Cut it out, together!"
+
* [2.3.0+] 0100C5E003B40000 "ARMS Global Testpunch"
* 0x0100F8F0000A2000 "Splatoon 2" (EUR)
+
* 0100D87002EE0000 "Snipperclips - Cut it out, together!"
* 0x010000A00218E000 "Splatoon 2 Global Testfire"
+
* 0100F8F0000A2000 "Splatoon 2" (EUR)
* 0x01000320000CC000 "1-2 Switch"
+
* 010000A00218E000 "Splatoon 2 Global Testfire"
* 0x0100152000022000 "Mario Kart 8 Deluxe"
+
* 01000320000CC000 "1-2 Switch"
* 0x01003BC0000A0000 "Splatoon 2" (USA)
+
* 0100152000022000 "Mario Kart 8 Deluxe"
* 0x01003C700009C000 "Splatoon 2" (JPN)
+
* 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.