Ломаем 3DOшные RSA ключи с помощью BOINC (Читать всем!)
Автор |
Сообщение |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
А, эти. Но они же банерскрин не подписывают Может, поэтому они не всё подписывают?
|
16 июл 2014, 19:40 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Какой алгоритм в них заложен, то они и делают. А про баннер лучше nikk спрашивать.
|
16 июл 2014, 19:45 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
А MakeBanner просто из BMP баннер делает, без подписи?
|
26 авг 2014, 10:41 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Да, и утилита CDoty и через SDK 
|
26 авг 2014, 10:45 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Ага, только что глянул исходники проги, действительно пишет 64 нуля в конец файла и всё. А его точно надо подписывать? Глянул диск Дума, там тоже нули в конце... правда может этот образ игры на 3DO не запускается?  Нет приставки проверить (хотя на эмуле прёт с обычным биосом). И в rom_tags смещения к сигнатуре баннера тоже нету...
|
26 авг 2014, 10:50 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Точно, во всяком случае в блю форест стори и по'ед... Попробуй в них занулить или просто испоганить концовку, они с обычным биосом не запустятся. MNEMO же подписал исправленный баннерскрин по другому в [3DO] Blue Forest Story SE (from MNEMO) 
|
26 авг 2014, 11:15 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Утилита cdoty должна подписывать баннер. Только что проверил. Открыл Blue Forest Story SE Edition.iso, нашёл эти 64 байта, поставил нули - игра не запускается. Прогнал исошку с нулями через 3DOEncrypt.exe - игра стала запускаться (при этом если уж придираться, оригинал образа игры отличается некоторыми байтами от переподписанной, но ведь запускается!) И алгоритм получения этой подписи не очень сложный. Только возвести число в степень "1293424431840119233399718499814761414763663098446392305026374327045918630228589915421353480949734793978038214646649008563728161865424388240308738298816913" это надо умудриться посчтитать :)))
|
26 авг 2014, 15:09 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
А сам баннер точно подписан? А то я смотрю свой DooM, там действительно баннер занулён. Возможно, некоторые игры не проверяют подпись в баннере... МНЕМО где-то писал, что при сборке своей первой хоумбрю 3DO Homebrew paсk 1 от Mnemonic нашёл дырку (лазейку)... Может, просто какую строку в каких-нибудь системных файлах надо поменять/удалить? Это как? Какое число, в какую степень? 
|
26 авг 2014, 15:32 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
А это зависит от содержимого файла rom_tags. В нем написано какие файлы нужно подписать, а какие нет. В думе баннерскрина нет. За подпись баннера отвечают байты "0F14" в rom_tags. Если они есть, значит баннер подписывается, если нет то нет. Берётся Bannerscreen, обрезаются 64 байта с нулями и считается MD5 сумма получившегося файла. Допустим, в BFS MD5 баннера равна Присоединяем к этому числу цепочку байт - насколько я понял это константа. Откуда взята непонятно, может в биосе зашита? В итоге получаем такую последовательность байт: Теперь осталось посчитать подпись по формуле: т.е. наше число возводится в степень D и результат умножается по модулю на число N (кнопочка mod на виндовом калькуляторе). Здесь числа D и N приведены в первом посте этой темы. Виндовый калькулятор такие 125-значные цифры обрабатывать не умеет, так что на коленке расчёты сложно произвести. По идее на выходе получим 64-значную подпись, но я не проверял. Её и нужно воткнуть в конец Bannerscreen.
Последний раз редактировалось aliast 27 авг 2014, 16:58, всего редактировалось 1 раз.
|
26 авг 2014, 16:28 |
|
 |
Ryudo Мегажитель
Группа: Пользователи Сообщения: 445 Регистрация: 28 янв 2013, 16:41
Модель 3DO: Panasonic FZ-10 NTSC-U
|
В чем собственно проблема? в бледфорсе делал свой баннер и все норм работает.Расковыряй мой диск глянь что там.
|
26 авг 2014, 18:12 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
aliast128 байтная подпись получается На сам попробуй: http://www.mobilefish.com/services/big_ ... uation.phphttp://www.mobilefish.com/services/rsa_ ... ration.phphttp://crypt-online.narod.ru/crypts/rsa/Я уже весь мозг сломал Ещё я не понял, откуда ты взял цепочку байт 1ffffffffffffffffffffffffffffffffffffffffffffffffffffff003020300c06082a864886f70d020505000410 , и для чего её к MD5 складывать. Может, там и не MD5 ваще надо? Может, там вместо нескольких десятков f какой-нибудь SHA-1 впихнуть надо... Кстати, DooM не использует банер ваще, он там для понта валяется, в Люсьен Квест аналогично. А во флешбеке его ваще нету. А то что rom_tags указывают, что смотреть на подпись - это скорее всего, ведь только их достаточно поменять для подписи. Надо будет их поковырять RyudoНадо разобраться с подписью именно банера, без всяких пересборок диска. Ты же банер не подписывал? Добавлено спустя 47 минут 30 секунд:Да, и кстати, фиг ещё знает в чём эти ключи исчисляются, в десятках или хексах, написаны-то вроде как в десятках  Хотя, так и так, всё равно 128 байт на выходе. А ещё непонятно, почему их там 2 комплекта вместо одного, типа одни шифруют, другие расшифровывают? Или второй как запасной? 
|
27 авг 2014, 15:56 |
|
 |
Ryudo Мегажитель
Группа: Пользователи Сообщения: 445 Регистрация: 28 янв 2013, 16:41
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Вот BannerScreen Утилита с BannerScreen.bmp делает BannerScreen,потом подпись диска. Добавлено спустя 4 минуты 45 секунд:А зачем тебе подписывать банер без разборки диска ?.
|
27 авг 2014, 17:05 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Из исходников 3DOEncrypt. Кстати, эту штуку надо не справа, а слева к MD5-сумме прикреплять, я ошибся (уже поправил пост выше). Проверил - результат у меня совпал с подписью в баннере. Должно получиться 128 значное число, т.к. 1 байт записывается в виде двух цифр. Значит 128/2 = 64 байт подписи. Ну то есть всё верно Вторым комплектом ключей подписываются три файла из папки System\Kernel. Всё остальное подписывается первым набором ключей.
|
27 авг 2014, 17:27 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Чтоб диск не разбирать  А ваще, взломать, конечно Добавлено спустя 18 минут 45 секунд:Да, точно, теперь всё норм Добавлено спустя 2 часа 1 минуту 47 секунд:На всякий случай закину архив с тем онлайн калькулятором во вложение, а то калькулятор больших величин я так и не нашёл, а этот вроде бы и в автономном режиме работает в Mozila FireFox. 
У вас нет необходимых прав для просмотра вложений в этом сообщении.
|
27 авг 2014, 21:31 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Осталось провести эксперименты и убедитьбся, что ничего скорее всего работать не будет  или будет, но не всегда - т.к. есть ещё файл signatures, который тоже как-то на что-то влияет.
|
28 авг 2014, 15:46 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Работает => [3DO] PO'ed - Русская версия  Никуда не денется  Всё остальное это что?
|
31 авг 2014, 02:40 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Ну баннер, например. Точный список не скажу. Вроде бы ещё launchme иногда подписывается.
|
31 авг 2014, 09:14 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
А файл signatures? Там что? В образе диска, созданным MPW Shell он заполнен нулями, а после подписи диска заполнен данными.
|
31 авг 2014, 12:43 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Судя по переводу названия файла, там и есть подписи.
|
31 авг 2014, 12:56 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
И как? Подписываются концы файлов Banner, 3 файла в папке Kernel, а тут что? Все в куче?
|
31 авг 2014, 12:58 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Не знаю, даже не смотрел пока А вот насчёт этой папки я немного сомневаюсь. В разных играх попадаются идентичные файлы А один файл в блю форест стори и люськин квест имеет одинаковую концовку и начало, только середина разная. Что же он, в середине подписывается? Добавлено спустя 4 минуты 6 секунд:Там ваще каша какая-то Добавлено спустя 1 час 8 минут 26 секунд:A rom_tags?
|
31 авг 2014, 12:59 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Не смотрел. Сейчас проверить не могу.
|
31 авг 2014, 14:27 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
Я так понял что в концах файлов ставится не подпись, а контрольная сумма. А в signatures как раз таки подпись. Хотя чем одно отличется от другого пока загадка. Ну контрольная сумма имеет длину 64 байта, а сигнатуры пару кило весят 
|
31 авг 2014, 14:34 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Файлик rom_tags точно нужен для подписи.  Блин, ну почему некоторые диски не подписываются?! Чо им надо?! Добавлено спустя 4 минуты 43 секунды:Я фигею, столько лет прошло после открытия этих ключей, и никто толком не описал что к чему 
|
09 окт 2014, 14:57 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Подпихни туда файл с другого диска и снова попытайся подписаться.
|
09 окт 2014, 15:15 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Какой файл? С какого диска?
Добавлено спустя 55 секунд: Ты про rom_tags? Его я с геймгуру взял.
|
09 окт 2014, 15:22 |
|
 |
aliast Специалист
Группа: Разработчики Сообщения: 1303 Регистрация: 04 дек 2009, 12:15
Модель 3DO: Нет
|
В rom tags указывается какие именно файлы следует подписать. Утилита cdoty позволяет подкинуть в образ строго определенный, т.е. неизменный rom_tags и на его основе подписывается определенный набор файлов. Другими словами можно все (или не все?) игры подписать одним и тем же rom_tags. Будут подписаны одни и те же файлы, хотя сами подписи будут отличаться, т.к. содержимое этих файлов в разных играх неодинаково. Про файл signatures ничего сказать не могу :(
|
09 окт 2014, 16:47 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Решил я попытать маленький образ TestJoy (from Sdevel). Разобрал его программой Альтмера "OperaFS[De]Compiller". Собрал ей же, не меняя файлов. Образ стал больше оригинала весить  Собрал ещё два таких же. Все три собранных файла весят одинаково по 3190 КБ (3 266 560 байт), но с разными хеш-суммами. Стал смотреть сравнилкой Мальвины в чём разница. А разница там есть, и не фиговая  Отмечено красным. Получается, что "OperaFS[De]Compiller" собирает образы рандомно. Не знаю, что это за изменения, но на работоспособность игры они вроде не влияют. С пропатченным биосом образы запускаются. Добавлено спустя 1 час 50 секунд:Прогнал их через "3DOEncrypt". Весить стали больше на 10 КБ - по 3200КБ (3 276 800 байт). Теперь они запускаются с оригинальным биосом. Разница некоторых показаний есть... Что это за показания, неизвестно  Разница между первым тестовым файлом и вторым теперь такая... Добавлено спустя 25 минут 4 секунды:Ну а теперь самое интересное - из-за чего я это всё затеял. Сравниваем не подписанный и подписанный файлы. Смотрим, что там наворотил "3DOEncrypt". Всего восемь изменений. И восьмое - это увеличение файла на 10 КБ, почти не считается. У всех трёх образов изменились одни и те же участки. Добавлено спустя 42 минуты 12 секунд:Файл rom_tags у Sdevel'а в образе такой (Весит 256 КБ). "3DOEncrypt" по нему находит 8 ром тегов, включая end tag... С длинной всё ясно, а с секторами непонятно - только lauchme tag соответствует Добавлено спустя 1 час 1 минуту 8 секунд:Едем дальше... Методом дедукции вычисляем, какие изменения после подписи нужны, чтобы запустить диск с нетронутым оригинальным биосом. Вот эти изменения... Образ запускается на эмуляторе с непропатченным биосом. Из восьми нужны только четыре. И они находятся в самом начале. Изменения выделены зелёным. Слева не подписано, справа подписано. Не думаю, что последние 64 байта подписи вычисляются по MD5 ром тегов... А по чему тогда? Добавлено спустя 27 минут 35 секунд:Записал на болванку полуподписанный образ. Дальше баннерскрина не прёт. Видать, эмулятору на вторую половину подписи пофиг. Либо так записалось фигово... Добавлено спустя 51 минуту 49 секунд:Тогда уж покажу, как изменяется файлик signatures после подписи. Дикий лес Добавлено спустя 52 минуты 11 секунд:А вот в этих фиолетовых участках подписи (те участки, которые выше зелёным были подсвечены) различаются во всех трёх образах. Если бы образ не собирался каждый раз рандомно с разной чек-суммой, то, думаю, они бы не различались.
|
10 окт 2014, 02:10 |
|
 |
Versus Я консольный бог
Группа: Разработчики Сообщения: 9841 Регистрация: 04 дек 2009, 11:59 Откуда: Сочи
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Интересный расклад, тока я ничего не понял. Каков общий вывод?
|
10 окт 2014, 10:19 |
|
 |
ПАУК Ужас, летящий на крыльях ночи!
Группа: Разработчики Сообщения: 9108 Регистрация: 17 май 2010, 01:04
Модель 3DO: Panasonic FZ-10 NTSC-U
|
Да просто визуально показал весь процесс. На практике вычислил, что подписываются файлы "signatures" и "rom_tags" (вроде aliast об этом выше писал). Выделено всё это зелёным. Хотя для чистоты эксперимента надо было взять голый "signatures". Узнал, что "OperaFS[De]Compiller" собирает разные образы из одних и тех же файлов, одинаковые она почему-то не собирает. Из-за этого подпись тоже бывает разная. Выделено фиолетовым. Ещё узнал, что эмулятору (FreeDO 1.9), похоже пофиг на подпись в "signatures", не проверяет он её, проверяет только "rom_tags". Возможно, поэтому у нашего французского друга не получилось сделать рабочую на приставке сборку "Vigoroth the delivery man 3DO (v1.1)" => 3DO Homebrew games - игры от blablaВ общем, я, наверно, зря потратил время, вот и весь вывод Добавлено спустя 10 часов 58 минут 9 секунд:А что за 3DOEncryptMinGW? http://3do.cdinteractive.co.uk/viewtopi ... 248#p16248 
|
10 окт 2014, 17:17 |
|
|