YAGAMI55, а разные хеши потому у разных утилит, потому что они генерируют разный рандомный первый ключ. Отсюда и разный подсчёт третьего хеша. А второй хеш всегда должен быть одинаковым, т.к. название файла одинаковое.
Ах да, ещё один момент, только дошло до меня. Эти данные в EBOOT вместе с SPRX подписываются ведь кликом.
Я вытащил его:
4034250AB9018EF901C098E1790A907F
Команда для подписывания пустышки будет такая:
make_npdata -e FILE.DAT NTJOBCODE.PPU.SPRX 1 1 1 0 16 3 00 EP0102-NPEB90473_00-DMCDEMO000000001 8 4034250AB9018EF901C098E1790A907F
И вот тебе прикол. Я специально скомпилировал make_npdata, как говорил, под тот самый рандомный ключ в SPRX, второй ключ сам хешируется из названия файла такой же, а вот третий ключ генерируется на основании первых двух вместе со всей предыдущей секцией 0x60 + klicense, которая заложена в EBOOT и SPRX. И что ты представляешь? Третий хеш тоже получился в точности такой. Можешь сам посмотреть, сравнить с оригинальным SPRX и удивиться. Получилась точная копия оригинала в заголовке NPD.
Так что переделывай свою работу, но уже с кликом и моим make_npdata под этот SPRX (хотя наверное не обязательно, т.к. тут важет клик). Потом выделяешь готовый заголовок NPD - это 0x70 байт (там как раз захватится весь заголовок NPD вместе с тремя хешами) и в SPRX так же выделяешь эти 0x70 байтов и аккуратно вставляешь. Следи, чтобы последующий код не сдвинулся, а то все смещения похерятся.
И тебе задание: декриптуй этот файл (он формата EDAT естессна) и напиши мне ответ, что я там написал...