As I understand it, a couple of things currently cause games to not boot on 4.x.
First, 5.0 added the ability for games to store the CXI logo near the cleartext part of the NCCH header rather than in ExeFS. Say we rebuild ExeFS with the logo in it.
7.0 introduced a new encryption method, encrypting RomFS and everything except what NS needs in ExeFS with a different key. Obviously we can decrypt this, re-encrypt it the old way, and disable the flag that enables this new encryption.
Finally, there are checks on version, but they only seem to go as far as checking the plaintext region of the header (correct me if I'm wrong). These checks could be bypassed by putting spoofed data here (lower version numbers to 4.x-happy ones.
After everything, there's still a fairly significant chance that some titles will require dependencies from newer SDK versions. This is unavoidable, and those titles just won't work. If we're lucky, though, many games won't have newer dependencies. The 360 and PS3 scene get away with running newer titles on older libraries a lot, might be similar here.
My question is, given a game is processed like I mentioned above and we get lucky with code running on the older SDK version, shouldn't this be theoretically completely possible?
First, 5.0 added the ability for games to store the CXI logo near the cleartext part of the NCCH header rather than in ExeFS. Say we rebuild ExeFS with the logo in it.
7.0 introduced a new encryption method, encrypting RomFS and everything except what NS needs in ExeFS with a different key. Obviously we can decrypt this, re-encrypt it the old way, and disable the flag that enables this new encryption.
Finally, there are checks on version, but they only seem to go as far as checking the plaintext region of the header (correct me if I'm wrong). These checks could be bypassed by putting spoofed data here (lower version numbers to 4.x-happy ones.
After everything, there's still a fairly significant chance that some titles will require dependencies from newer SDK versions. This is unavoidable, and those titles just won't work. If we're lucky, though, many games won't have newer dependencies. The 360 and PS3 scene get away with running newer titles on older libraries a lot, might be similar here.
My question is, given a game is processed like I mentioned above and we get lucky with code running on the older SDK version, shouldn't this be theoretically completely possible?