Yoti, ладно, поставим вопрос по другому.
Если я беру декриптованный файл
Astonishia Story 2 и его-же кирк с заголовком, то получаю сообщение:
- PRX SIGNER: Elf is to big
Header_List *target_header = get_header_list( elfSize );
if( target_header == NULL ) {
printf("PRX SIGNER: Elf is to big\n");
return 0;
}
В то время, когда нифига не BIG, а в точности совпадает и подходит размер ELF с размером 0x28 в psp_header.
Где ошибка?
Вот здесь мне кажется нужно выкинуть
h_size -= 0x150; или сделать равным нулю.
Header_List *get_header_list(int size)
{
int i;
int h_size;
for(i=0; i<sizeof(header_list)/sizeof(header_list[i]); i++) {
h_size = get_kirk_size(header_list[i].kirkHeader); // получаем полный размер файла из заголовка
h_size -= 0x150; // получаем полезный размер файла
if( h_size >= size ) { // если текущий заголовок подходит
return &header_list[i]; // используем его
}
}
return NULL; // подходящего заголовка нет
}
Нет, ничего не даёт. Балин, наплодили формул, фиг разберёшься )))
P.S. Нужно было в таблицах ещё добавить размеры ELF.