diff options
| author | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-30 11:40:49 -0400 |
|---|---|---|
| committer | Takoroka <137927095+Takoroka@users.noreply.github.com> | 2026-10-30 11:40:58 -0400 |
| commit | 37893c68314360071261305a2f8527d8efde8fde (patch) | |
| tree | 3e595ba7a6b3dc132176f4f0a4c9a47657f01fb9 /src/common/sparse_large_vector.cpp | |
| parent | f362528c0447c491bfe00c0bdd5d8c245396a24c (diff) | |
ro: read Switch 2 NRR hash lists where they are
Switch 2 NRRs carry 3072-bit keys and signatures, so the fields after
them (program id, size, kind, hash list offset and count) sit 0x180
bytes later than in a Switch 1 NRR: hash list offset and count at 0x4c0,
hashes from 0x4d0 (Kirby Air Riders, Minecraft, Mario Tennis Fever).
RegisterModuleInfo read signature bytes as the hash count: Kirby Air
Riders read 51 GB of "hashes" (host memory ran out), Minecraft threw
bad_alloc and the process ended.
Read the fields at the Switch 2 offsets for Switch 2 processes, and
reject an NRR whose hash list does not fit inside it.
Diffstat (limited to 'src/common/sparse_large_vector.cpp')
0 files changed, 0 insertions, 0 deletions
