Сообщение от ErikPshat
А нельзя просто выдернуть декриптованный IPL полностью?
Кстати, что-то в main.bin не нашёл в прямом виде ключей. Слышал ещё про payload.bin, который находится тоже упакованный в main.bin и в котором эти ключи уж точно содержатся.
Просто я исследовл main.bin от 2.00, и там ключи лежали на поверхности.
|
ipl сначала раскриптовывыется аппаратной криптовалкой kirk, потом програмной криптовалкой из него вытаскивается main.bin, потом программной криптовалкой из main.bin вытаскивается еще один модуль (наверное это и есть payload.bin), но он закриптован дважды, программно я его декриптовал и теперь нужно декриптовать аппаратным kirk на psp.
как именно - я не очень в курсе, должны быть какие-то готовые тулзы. код должен выглядеть примерно так:
u8 buf[0x80000];
...
ReadFile("ms0:/main2_enc.bin", buf, 0x80000);
PspKirkRegs *const crypt = KIRK_HW_REGISTER_ADDR;
crypt->command = 1;
crypt->src_addr = crypt->dst_addr = MAKE_PHYS_ADDR(&buf);
crypt->proc_phase = 1;
while((crypt->status & 0x11) == 0);
crypt->status_end = crypt->status;
SYNC();
WriteFile("ms0:/dec_ipl.bin", ipl, 0x80000);
это выдрано для примера из другого кода, но наверняка есть готовые тулзы, я просто не знаю