Well, that all depends if your goal is signing code so it can run on any console or just allowing unsigned code to run on your console. The latter will be possible, although still difficult.
At the end of the day, the vast majority of encrypted code runs on the PPU after decryption, so even considering the encrypted metldr block, the general principle is:
PPU: does basic initialisation
PPU: requests SPU to start up in isolation mode
SPU: decrypts lv0 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv0
*INSERT HACK HERE TO PATCH lv0 HERE*
PPU: executes decrypted lv0 code
...
PPU: lv0 sends message to still running metldr SPU to decrypt lv1
SPU: decrypts lv1 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv1
*INSERT HACK HERE TO PATCH lv1 HERE*
PPU: executes decrypted lv1 code
...
PPU: lv1 sends message to still running metldr SPU to decrypt lv2
SPU: decrypts lv2 and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting lv2
*INSERT HACK HERE TO PATCH lv2 HERE*
PPU: executes decrypted lv2 code
...
*CHECK*
PPU: lv2 sends message to still running metldr SPU to decrypt self
SPU: decrypts self and puts in somewhere PPU can access it
PPU: waits for SPU to finish decrypting self
*INSERT HACK HERE*
PPU: executes decrypted self code
So, even without knowing the encryption keys, provided we can obtain the original metldr, we can always execute signed code so we can continue to run regular games with a modified lv2.
To run unsigned code, where I've written *CHECK*, we check to see if the code is unisgned, if so we just execute it directly without ever asking the SPU to decode the data.
13250 HeyManHRU
13207 PS3 News
11287 elser1
11119 oVERSoLDiER
9248 GrandpaHomer
8578 Tidusnake666
7968 saviour07
7340 condorstrike
7258 deank
6858 OGroteKoning
24951 PS3 News
5279 Starlight
2965 HeyManHRU
2173 CJPC
2122 elser1
1818 cfwprophet
1756 her0
1570 oVERSoLDiER
1291 GrandpaHomer
1080 barrybarryk





