PDA

Просмотр полной версии : Дешифровка игр PS Vita


botik
14.08.2019, 21:26
Файлы игры в формате NoNpDrm зашифрованы.В частности иконки sce_sys/icon0.png и sce_sys/pic0.png(их нельзя открыть на ПК) У меня вопрос для экспертов(которые создают русификаторы;)) по какому алгоритму и каким ключом шифруются данные? И я в курсе что это на консоли делает VitaShell но мне интересен сам алгоритм.Хочу на Python сделать прогу для ПК

Yoti
14.08.2019, 22:12
botik,
изучай: https://github.com/cuevavirus/psvpfstools

botik
15.08.2019, 18:45
Остались два вопроса.

1 ВОПРОС

Имеется программа для консоли FAGDec.vpk которая глубоко дешифрует файлы в папке sce_module и eboot.bin.Есть ли её аналог на ПК? Программа psvpfsparser хорошая но именно с этими файлами до конца не справляется.Это позволит легко переводить формат pkg файлов в формат VPK без участия консоли.

2 ВОПРОС

После установки любого VPK генерируется head.bin который одинаковый для всех консолей а если установить разные игры то отличаться head.bin будет только несколькими строчками 0x100-0x10F и 0x420-0x42F .Какой алгоритм их создания? (предполагаю что без hmac_sha1 не обошлось) Хотелось на ПК его генерировать без участия консоли.

Yoti
16.08.2019, 02:42
botik,
1) https://github.com/TeamMolecule/sceutils (в изначальном репо нет ключей, смотри форки)
2) https://github.com/lusid1/pkg2zip
Говнодампы в VPK не нужны.

botik
16.08.2019, 09:34
botik,
1) https://github.com/TeamMolecule/sceutils (в изначальном репо нет ключей, смотри форки)
2) https://github.com/lusid1/pkg2zip
Говнодампы в VPK не нужны.

1 Благодарю за программу.Но она что-то не работает.И примеров нет посмотреть

2 VPK это самый лучший формат полностью расшифрован и очень легко переводится в nonpdrm.На пример игра VVVVVV адаптирована для nonpdrm можно и саундреки послушать на ПК и поиграть без установки. Секрет в файле head.bin


https://mega.nz/#!Y7QlhIoT!Pd9oNDJiEdEgWumNBGPfuTyfXg4bRqYsWyb8GrF_QMU

Yoti
16.08.2019, 20:56
Но она что-то не работает.И примеров нет посмотреть
Ну, печаль тебе. У команды NoPayStation работает, создаёт CompPack'и автоматом. И вообще это оффтоп в этой теме.

VPK это самый лучший формат полностью расшифрован и очень легко переводится в nonpdrm.
Ты адекватный вообще? Нет средств по PFS шифрованию, чтобы получить NoNpDrm версию из расшифрованных ресурсов.

На пример игра VVVVVV адаптирована для nonpdrm
Ты что курил? По ссылке сраный Витамин дамп, там даже загрузчик плагинов/модулей от Витамина лежит - steroid.suprx.

botik
16.08.2019, 21:05
А ты проверял?установи его как NoNpDrm версию и он заработает.

Yoti
17.08.2019, 00:01
botik,
отключил NoNpDrm плагин, обновил БД и получил установленную игру. Обычное дешифрованное говно, которое не имеет отношения к NpDrm шифрованию и не требует обхода лицензии при помощи плагина.

botik
17.08.2019, 00:56
А зачем плагин отключать? У меня с ним все установилось и запустилось.Я прямо с магазина их качаю и дешифрую.Но пока вижу два плюса.
1 Меньше места игра занимает в архиве
2 Теперь русификатор можно соединить с игрой без папки rePatch.

botik
18.08.2019, 18:23
С помощью Vitashell получил расшифровку eboot.bin.Оасталось снять DRM защиту.Скопировал его на ПК скачал прогу sceutils подключил keys_external.py. Далее в командной строке scedecrypt.py eboot.bin <folder>.Пишет ошибку Invalid metadata info padding (decryption likely failed)'
В самом Python коде понимаю выше среднего уровня и смог переделать прогу для Python3. И получил ту же самую ошибку.Где можно ознакомиться с подробными инструкциями как сделать чтобы все работало?

Yoti
18.08.2019, 23:05
Где можно ознакомиться с подробными инструкциями как сделать чтобы все работало?
Нигде.

botik
20.08.2019, 10:33
Нашел keys.py которая использует программа но это не помогло.

https://pastebin.com/muzFMBAZ

Или keys.py неправильный или прога не рабочая.Я просмотрел код и сразу вопрос к примеру зачем в keys.py строчки

ENC_KEY = binascii.a2b_hex('AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA')
ENC_IV = binascii.a2b_hex('AF5F2CB04AC1751ABF51CEF1C8096210')

если сама программа эти значения вообще не использует в своих вычислениях.А может сам автор проги их умышленно удалил? Я и сам могу написать прогу с нуля если бы знал точный алгоритм расшифровки.

Yoti
20.08.2019, 11:32
botik,
с фига ли бы не использует? Это ключ от secure kernel в версиях ПО до 3.69 включительно.
Но, вообще, есть таблица ключей и алгоритмов (https://docs.google.com/spreadsheets/d/1NRDVSqYR3uwnzCLY47ZBACzFlXTzcvJtgLMc3aGOdEU/export?format=xlsx&id=1NRDVSqYR3uwnzCLY47ZBACzFlXTzcvJtgLMc3aGOdEU) от Мэтьюха, если уверен в своих силах.

botik
20.08.2019, 13:26
Ключи увидел а алгоритм не вижу.Нужен алгоритм который представляет набор конкретных действий в определенном порядке например вычисление PSVIMG ключа из аккаунта.Все подробно и четко описано даже пример приведен

https://wiki.henkaku.xyz/vita/PSVIMG

Сразу можно и прогу на python3 написать.Вместо AID написать свое значение.

from Crypto.Cipher import AES
from Crypto.Hash import SHA256

AID = 0x0000000000000000

aid_bytes = AID.to_bytes(8,"big")
seed = aid_bytes + b'Sri Jayewardenepura Kotte'
key = SHA256.new(seed).digest()

cipher = AES.new(b'\xa9\xfaZby\x9f\xccLrkN,\xe3Pm8', AES.MODE_ECB)
decrypted =cipher.decrypt(key)

print ("KEY=",end="")
print (decrypted.hex())
input()

botik
20.08.2019, 19:12
Все разобрался.Неужели было сложно автору написать одну строчку мануала о том что в модуле sceutils.py в строке 11 значение klictxt нужно изменить на ключ из файла work.bin по адресу 0x50.Мы ведь не экстрасенсы.

Yoti
21.08.2019, 12:12
Ключи увидел а алгоритм не вижу.
Там целая колонка всяких AES128-CBS, ты чего?

Неужели было сложно автору написать одну строчку мануала
Это инструмент для тех, кто понимает.

в модуле sceutils.py в строке 11 значение klictxt нужно изменить на ключ из файла work.bin по адресу 0x50
Ничего никогда не менял и всё работало.

Yoti
22.09.2019, 20:34
Ничего никогда не менял и всё работало.
Как раз потребовалось файлик посмотреть. Повторяю, ничего внутри файлов не менял и всё работает:
python self2elf.py -i eboot.bin -o eboot.elf -k work.bin

botik
24.09.2019, 18:15
Я об этом догадался после 2 дней копания в коде что нужно ещё -k work.bin добавлять.Но я её переделал под себя и в exe перевел(self2elf.exe).Теперь работает -k key(из work.bin).

Yoti
24.09.2019, 20:53
Два дня копаться в коде, чтобы увидеть синтаксис, который прога выводит сама, лол?

16699

botik
28.10.2019, 21:15
Тема перенесена http://www.pspx.ru/forum/showthread.php?t=109597

Yoti
08.01.2020, 13:43
Ты вполне можешь создать персональную тему для софтины где-нибудь типа здесь: https://www.pspx.ru/forum/forumdisplay.php?f=455