Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- file modes:
- read 1
- write 2
- create 4
- file position:
- begin 0
- current 1
- end 2
- media type:
- nand 0
- sdmc 1
- ctrc 2
- mountsdmc - const char*
- file ops - const wchar_t*
- NVRAM chains
- initial patch
- --- top --- (low address)
- 0010F2B9 - begin, THUMB
- 0001FE00 pop {r0, r2, pc}
- 00000100
- 001549E1 pop {r1, pc}
- 00279400
- 001334FC load_nvram(0x1FE00, 0x279400, 0x100);
- 001E8CD0 r4
- 0010538C pop {r3, pc}
- F027949C mainmem virtual addr - r3
- 00143D60 ADD SP, SP, R3 - exit to loader chain
- --- bottom --- (high address)
- *SD must be mounted then fopen, fread, decrypt, jump*
- loader patch
- --- top --- (low address)
- 0010F2B9 - begin, THUMB
- 00272BAE pop {r0, r2, pc}
- BADC0DED const char* archive_name = "YS:"
- 0018F19C nn::fs::MountSdmc("YS:");
- 0010B690 r3
- 00FAB000 r4
- 00200200 r5
- 0010F2B9 pop {r0, r2, pc}
- 00279000 this->
- 00000001 FILE_READ
- 001549E1 pop {r1, pc}
- 00276F38 const wchar_t* file_name = L"YS:/Launcher.dat"
- 001B82AC nn::fs::FileStream::Initialize(this->, L"YS:/Launcher.dat", FILE_READ);
- 0018D5DC r4
- 00278340 r5
- 00100200 r6
- 000048CC r7
- 00143D60 r8
- 0010F2B9 pop {r0, r2, pc}
- 00279000 this->
- 002B0000 void* in_buf(for fread)
- 001002F9 pop {pc}
- 001002F9 pop {pc}
- 001002F9 pop {pc}
- 001002F9 pop {pc}
- 001002F9 pop {pc}
- 001002F9 pop {pc}
- 001549E1 pop {r1, pc}
- 00000000
- 001549E1 pop {r1, pc}
- 00279020 s32* read_in
- 0010538C pop {r3, pc}
- 00009000 size_t read_size
- 001B3958 nn::fs::FileStream::TryRead(this->, s32* read_in, void* in_buf, size_t read_size);
- 002104E5 r4
- 0019DA00 r5
- 00017500 r6
- 0021DF86 r7
- 001AC100 r8
- 001DDA22 r9
- 0016FE91 POP {R0-R4,PC}
- 00100100 r0 - ptr to 16-byte Launcher.dat decryption key
- 00144CBC r1
- 002B0000 r2 in_buf(to decrypt from)
- 00009000 r3 read_size(to decrypt)
- 001549E1 r4
- 0022EFAC decryptAES
- 00105C88 r4
- 000E0000 r5
- 00250390 r6
- 001EFAC0 r7
- 0016FE91 r8
- 0010538C pop {r3, pc}
- 00036B24
- 00143D60 ADD SP, SP, R3 - exit to Launcher.dat
- --- bottom --- (high address)
- virtual s32 Write(const void* buffer, size_t size, bool flush)
- virtual Result TryWrite(s32* pOut, const void* buffer, size_t size, bool flush)
- this->
- 279020
- 00100000
- c000
- 00 00 10 00
- 00 10 00 00
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement