PSPx форум

PSPx форум (https://www.pspx.ru/forum/index.php)
-   Помощь и ремонт (https://www.pspx.ru/forum/forumdisplay.php?f=391)
-   -   Дешифровка игр PS Vita (https://www.pspx.ru/forum/showthread.php?t=109158)

botik 14.08.2019 21:26

Дешифровка игр PS Vita
 
Файлы игры в формате 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

Цитата:

Сообщение от Yoti (Сообщение 1190569)
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!Pd9oNDJiE...qYsWyb8GrF_QMU

Yoti 16.08.2019 20:56

Цитата:

Сообщение от botik (Сообщение 1190586)
Но она что-то не работает.И примеров нет посмотреть

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

Цитата:

Сообщение от botik (Сообщение 1190586)
VPK это самый лучший формат полностью расшифрован и очень легко переводится в nonpdrm.

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

Цитата:

Сообщение от botik (Сообщение 1190586)
На пример игра 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 (Сообщение 1190757)
Где можно ознакомиться с подробными инструкциями как сделать чтобы все работало?

Нигде.

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 включительно.
Но, вообще, есть таблица ключей и алгоритмов от Мэтьюха, если уверен в своих силах.

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

Цитата:

Сообщение от botik (Сообщение 1190897)
Ключи увидел а алгоритм не вижу.

Там целая колонка всяких AES128-CBS, ты чего?

Цитата:

Сообщение от botik (Сообщение 1190926)
Неужели было сложно автору написать одну строчку мануала

Это инструмент для тех, кто понимает.

Цитата:

Сообщение от botik (Сообщение 1190926)
в модуле sceutils.py в строке 11 значение klictxt нужно изменить на ключ из файла work.bin по адресу 0x50

Ничего никогда не менял и всё работало.

Yoti 22.09.2019 20:34

Цитата:

Сообщение от Yoti (Сообщение 1190983)
Ничего никогда не менял и всё работало.

Как раз потребовалось файлик посмотреть. Повторяю, ничего внутри файлов не менял и всё работает:
Цитата:

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

Вложений: 1
Два дня копаться в коде, чтобы увидеть синтаксис, который прога выводит сама, лол?

Вложение 16699

botik 28.10.2019 21:15

Тема перенесена https://www.pspx.ru/forum/showthread.php?t=109597


Текущее время: 18:59. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.