ErikPshat, НЕ распаковываются pkg файлы прошивки. dev_flash.tar все распаковались.
UPD Вот эти параметры - это и есть закрытый ключ ECDSA. ECDSA Но их должно быть очень много. Он не единственный. После прошивки 355 метод шифрования изменился. Мне нужно получить свой priv=000000000000000000000000000000000000000000 для проверки. Как взломали PS3 |
|
Вложений: 1
Обновление scetool by Sorvigolova
Updated to v.0.3.0 - Added Internal keys support. - Added Signed Elf ver.2 decryption support. - Decrypting header will now use key-bruteforce method. - Options changed. - Removed Pub/Priv configs, enabled all features by default. Имейте в виду, что изменились названия команд (смотрите в консоли). Например, --sce-type на --category, --self-auth-id -self-vendor-id --self-type на --program-auth-id --program-vendor-id --program-type и т.д. Добавлены ключи в файл "internal_keys" Во вложении экзешник с ключами и исходниками. |
Тоже очень интересен секрет генерирования рандомного числа k для ECDSA подписей. В эмуляторе kirk на PS3 используют ch74 для генерирования 32 битного рандомного числа, затем отрезают от него 1 байт, и собирают в буфер из 0х28 таких байт, а потом сравнивают полученное большое число в буфере по модулю N. Этот N берут из параметров эллиптической кривой. Если разгадать секрет генерации этого k для ключей лоадеров, то можно повынимать все остальные недостающие priv ключи. Если же при 2 одинаковых k, для подсчёта priv (числа dA) сокращались переменные k, то при известных 2 числах k можно использовать метод подстановки.
|
Fireball, верно говоришь, вот на практитке реальный механизм ECDSA на примере декриптовки IPL-загрузчика у PSP: https://github.com/ErikPshat/ipltool
|
Цитата:
такими остатками от деления заполняют буфер, пока число в буфере не будет больше, чем число N. Полученное в буфере число используется в качестве числа k. А дальше всё как обычно: G умножаем на k и берём абсциссу полученной точки в качестве R и тд. Интересно |
Ещё одно обновление scetool.exe
|
ErikPshat, скомпилируешь?
|
Вложений: 1
in1975, так вот он готовый лежит: https://github.com/Sorvigolova/sceto...master/Release
Команды немного другие. Код:
scetool 0.3.0 (C) 2011-2013 by naehrwert |
ErikPshat, в шапку добавил источник
|
in1975, хотя в прошлый раз вон выше я тоже писал прог обновление и там так же версия у него scetool 0.3.0.
|
Ребята, там же ничего особо не поменялось в самом последнем обновлении, просто был исправлен лоадер эллиптических кривых vsh. Версию менять не зачем.
Этот лоадер пока что используется для подписи NPDRM self файлов, а так как нет подлинного приватного ключа для неё - толку мало. Есть публичный ключ только, его можно использовать только для проверки таких подписей, в чем тоже смысл не велик. |
В общем, чтобы нам разгадать секрет генерирования числа K, нам надо понять, что же за байты они берут по модулю N.
Формула: k = x mod N. где k и N - числа длиной в 20 байт, x - некоторое число длиной в 40 байт. Число N нам известно, это порядок используемой эллиптической кривой. Оно есть в параметрах кривых. UPD: Что мы имеем: 1) число k было постоянным для сигнатур с криптофейлами в пределах одного ключсета (разные ключи и одинаковые N дают разные k). 2) если изменять число x в пределах числа N, то число k будет меняться на разницу (x_второе - x_первое). 3) для всех сигнатур в .pkg файлах были одинаковые RS, при одинаковых hash от подписываемых данных. То есть число k оставалось неизменным при неизменном хеше от подписываемых данных. UPD2: Надо вот что попробовать: если для .pkg / .edat файлов число k "подсаливают", а соль вполне себе может быть равной sha1 хешу от данных, для некоторых случаев, будет справедливо уравнение: (k_первое - k_второе) = (h_первое - h_второе) где k_первое, k_второе - секретные числа первой сигнатуры и второй сигнатуры , h_первое, h_второе - хеши sha1 от подписываемых данных для первой и второй сигнатуры соответственно. а т.к хеши - числа известные, то можно попробовать выразить k_второе через k_первое методом подстановки. k1 - k2 = h1 - h2 k2 = k1 + (h2 - h1) и попробовать использовать это для подсчёта прив ключа dA для edat и pkg. Если облом: можно еще попробовать использовать не весь хеш, а только последние его 8 байт. |
Код подписи для HEN если кому то надо подписать HOMEBREW Такой код используется в вебмен. Если кастомное приложение все равно не запустилось, то в коде нет ошибки. Значит на HEN его пока что запустить нельзя. np-content-id можно в коде ставить любой. На работоспособности приложения не отображается. |
это я использовал для *.sprx, sman так заработал, но работает нестабильно, видимо нужно код перебирать.
Код:
@scetool -0 SELF -1 TRUE -s FALSE -2 04 -3 1070000052000001 -4 01000002 -5 APP -6 0003004000000000 -A 0001000000000000 -8 4000000000000000000000000000000000000000000000000000000000000000 -9 00000000000000000000000000000000000000000000007B0000000100020000 -e $(PPU_PRX_TARGET) $(PPU_SPRX_TARGET) |
Цитата:
|
Цитата:
Как говориться HEN пока не стабилен ко всем подписям. |
Вложений: 1
На всякий случай сделал файл закладок HBK для Hex Workshop: ELF PS3 File Format.hbk (архив всех закладок во вложении в шапке).
Как пользоваться закладками? - подробно расписано в теме Hex Workshop Там разложил по полочкам формат EBOOT.ELF. Вдруг кому-то понадобится вычислить размер заголовка ELF, размер в виртуальной памяти и прочие данные: |
не могу расшифровать пишет
[*] Loaded keysets.[*] Loaded loader curves.[*] Loaded vsh curves.[*] Using keyset [appldr 0x0010 03.61][*] Error: Could not load IDPS.[*] Error: Could not decrypt header. или [*] Loaded keysets.[*] Loaded loader curves.[*] Loaded vsh curves.[*] Error: Could not process D:\Data3\EBOOT.BIN вторая ошибка с дисковой версией |
moju, установите PS3 Tools Collection по пути по умолчанию.
Там всё это есть. Можете декриптовать с помощью C:\PS3\ps3tools\tools\scetool\ScetoolGuiPSPx.exe Но проще, зайдите в папку C:\PS3\ps3tools\tools\EDAT_ReENCRYPT Файлы кидайте в папку ENC И декриптуйте батником EBOOT SELF SPRX ReENCRYPT for HEN.bat |
Текущее время: 14:50. Часовой пояс GMT +3. |
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2025, vBulletin Solutions, Inc. Перевод: zCarot
PSPx Forum - Сообщество фанатов игровых консолей.