ну и по-поводу переподписи до 100% совпадения... рано или поздно придется определиться, первые 16 байт после content_id[48] в NPD-секции - это просто случайный набор или все-таки контрольная сумма файла, как там и написано:
uint8_t digest[16]; // sha-1 hash of debug self/sprx created with make_fself_npdrm
дебаг версия - это же незашифрованная версия файла? можно ли получить такое же число из имеющегося зашифрованного файла?
просто, если этот параметр важен, то замена этих сумм один к одному на нерабочем файле - даст опять же нерабочий файл...
Короче, я посмотрел на Спецификацию PKG и понял, что это значит debug.
Смотрите по ссылке в таблице второе смещение:
pkg_revision - 80 00 for retail (finalized), 00 00 for debug (non finalized)
То есть, debug - это не финализированная версия, получаемая при первом проходе - это не шифрованная версия файла и без вставленных ещё <license>, <type> и <cID>, а во втором проходе получается финализированная retail (finalized), где файл шифруется и заполняются эти параметры, присущие финализированной версии.
А теперь смотри в позиции 0x60, тот код digest после ContentID, про который ты говоришь и который одинаково расположен у любых NPD:
digest - sha1 from debug files and attributes together merged in one block
То есть, в переводе - это SHA1 от debug файлов и атрибутов, объединенных в один блок.
Короче, я решил провести эксперимент на файле EDAT. Взял официальный файл licensee.edat из Update Patch к игре "Call of Duty Ghosts NPEB01835", о которой писал постом выше.
Вот я подготовил архив необходимых файлов scetool.zip (распаковать в папку ps3tools\tools\scetool) - в архиве licensee.edat, EBOOT.BIN и RAP от этой игры + оригинальный make_npdata + исправленный ScetoolGuiPSPx.exe.
Сначала декриптуете официальный EDAT следующей командой:
Примечание: при компиляции в debug из-под консоли Windows у меня утилита make_npdata.exe линуксовской версии почему-то криво работает и вставляет в файл кучу мусора с путями ко всяким компиляторам, установленным в Windows. Если у вас есть Виндусовская версия make_npdata, то пробуйте ей. У меня эта утилита заработала из-под msys.bat (linux надстройка для MinGW). Если у вас то же самое, тогда выполните универсальную инструкцию для компиляции приложений для PS3, PSV, PSP и Windows.
Вот такой получается файл DEBUG и внизу смотрим контрольную сумму SHA-1 (сравниваем первые 16 байт с выделением на картинке выше)
SHA-1 = 8A AA D3 DB 8C FF 18 C2 F3 0F 53 9D 58 E0 63 A2 F4 89 07 99