DC-SWAT Forum
BIOS protection by Holly - Версия для печати

+- DC-SWAT Forum (http://www.dc-swat.ru/forum)
+-- Форум: Sega Dreamcast (/forum-2.html)
+--- Форум: General Discussion (/forum-7.html)
+--- Тема: BIOS protection by Holly (/thread-2150.html)

Страниц: 1 2 3 4 5 6 7 8


RE: BIOS protection by Holly - SWAT - 18.09.2014 18:57

Прикрепляй к посту я проверю!


RE: BIOS protection by Holly - shadow - 19.09.2014 07:07

Ну чего там?!


RE: BIOS protection by Holly - SWAT - 19.09.2014 08:11

В общем ситуация в данный момент такая.
Есть кусок биоса (1024 байт, видимо dev версии) из одного игрового автомата (на той же архитектуре), который проходит проверку Holly. Т.е. теоретически можно его подставить в начало кастомных биосов и запускать проверку только этого кусочка, контрольная сумма совпадает, а мы можем использовать оставшееся пространство как пожелаем. Не мало важный косяк со стороны разработчиков так это еще то, что в этом кусочке кода, есть переход (jump) за зону проверки, что фактически бесприпятственно подволяет подставить свой код к этому кусочку и ждать перехода в него при загрузке.
Но есть и обратная сторона медали. Дело в том что все homebrew прокачивают биос самостоятельно и они это делают на весь его размер. Это означает что homebrew которые есть сейчас, а с большей долей вероятности и последующие (кроме тех кто специально об этом позаботится) загружаться с HDD не смогут, так как сами же и заблокируют IDE интерфейс.

В любом случае, если с этим куском биоса что-то выгорит, то для коммерческих игр можно спокойно использовать такие биосы, уж в DS то код прокачки биоса я поправлю обязательно Smile
Так же это может помочь в окончательном взломе защиты Holly, так как можно сделать значительно более быстрый брутфорс.
Пока правда это только теория, лично я еще не успел попробовать, как сделаю тестовую версию и проверю, то отпишусь здесь.


RE: BIOS protection by Holly - shadow - 19.09.2014 10:13

Да я думаю пропатчить старые программы не сложно будет. Ну а так ждём результатовSmile


RE: BIOS protection by Holly - SWAT - 19.09.2014 10:44

Пропатчить то может и не сложно, просто неудобно это Sad Ну да ладно, я думаю и эта проблема решится со временем.
Кстати сделал сборку биоса с этим куском, пока правда проверить не могу, вечером или завтра только смогу. Может есть желающие сделать это прямо сейчас?


RE: BIOS protection by Holly - shadow - 19.09.2014 11:00

Дак ты скинь ссылку, я думаю найдутся те кто протестируетSmile


RE: BIOS protection by Holly - SWAT - 19.09.2014 13:00

Да ладно, уже сам скоро проверю. Мне еще MetalliC дал биос, обычный в целом, но с этим куском и проверяется в нем только он. Говорит на авроре (игровой автомат) работает, надо будет еще на дриме проверить тоже, чтобы убедиться окончательно в работоспособности этой затеи. Если будет работать, значит буду доводить до ума свои кастомные биосы, если не заработает первая версия сразу Smile


RE: BIOS protection by Holly - shadow - 19.09.2014 13:24

Первый раз слышу об этом игровом автомате) Ну ладно, будем ждать результатовSmile


RE: BIOS protection by Holly - SWAT - 19.09.2014 13:45

Так, у меня планы поменялись на вечер, так что сегодня проверить не смогу.
Выкладываю оба биоса, проверьте кто-нибудь плиз - https://dl.dropboxusercontent.com/u/4597053/holly_check_bioses.7z


RE: BIOS protection by Holly - SWAT - 20.09.2014 09:28

Проверил сегодня биосы. В общем это победа! Пусть еще не окончательная, но все же.
BIOS от MetalliC работает, правда ожидаемо homebrew не запускаются, стопорится на экране IP.BIN'a (а точнее в начале выполнения 1ST_READ), но очевидно что привод работает, так как IP.BIN загрузился.
Мой биос что-то черный экран показывает, видимо я где-то ошибся, но это мелочи, исправлю. Главное что теория подтвердилась практикой!


RE: BIOS protection by Holly - cvgs - 20.09.2014 09:54

MetalliC, молодца!!!


RE: BIOS protection by Holly - shadow - 22.09.2014 10:28

Ну чего там щас происходит?


RE: BIOS protection by Holly - SWAT - 22.09.2014 12:47

Пока в общем нечего говорить, я не занимался этим вопросом на выходных.
С кастомными биосами быстро не получилось, почему-то DC не стартует, я пока попробовал 3 варианта сборки, во всех результат один - пустота.
Возможно для начала я просто внедрю boot loader в оригинальный биос, тот что модифицировал MetalliC, пока не пойму чего не хватает в коде bootstrap для полностью кастомных биосов.


RE: BIOS protection by Holly - shadow - 06.10.2014 14:02

Ну что, биос с бут лодером готов?


RE: BIOS protection by Holly - SWAT - 06.10.2014 15:08

Пока нет времени этим заниматься Sad


RE: BIOS protection by Holly - megavolt85 - 09.10.2014 02:19

SWAT, выдалось у меня немного свободного времени, вообщем встроил я bootloader в bios Metalic'a, работает, но через Ж. Надо в bootloader'e отключить прокачку биоса или подправить её. Сейчас всё работает так: переключатель на custom, включил дрим , на лэйбе sega дёрнул переключатель на родной биос, можно наслаждаться. Если в приводе диск, то дрим загрузится с диска. Будет время, пересобери bootloader и кинь в дроп, я его вживлю в биос, ну или сам, смотри как удобней

Код:
dd if=./metalic.bin of=./hacked.bios bs=1 count=65536
dd if=./DreamShell_boot_loader_v2.3.bin of=./hacked.bios bs=1 seek=65536
dd if=./metalic.bin of=./hacked.bios bs=1 seek=456084 skip=456084   // seek и skip равны размеру hacked.bios



RE: BIOS protection by Holly - SWAT - 09.10.2014 11:31

Ок, спасибо, скоро сделаю загрузчик и слеплю все в кучу.


RE: BIOS protection by Holly - MetalliC - 06.06.2016 23:10

может тут кому-то будет интересно - стало любопытно каким макаром родные Mil-CD софтины делают разлочку G1, оказалось совсем не так как хоумбрю/пиратка.

если помните, перед запуском бинарников биос пишет в 5F74E4 типа магическое число - 42FE, которое как я и предполагал не отфонарное, а реальный конечный адрес данных которые будут прогоняться через схему защиты.

собсно в бинарнике милцд встречается такой код:
Код:
8C1DF142  D10C  MOV.L     #h'A0001000, R1
8C1DF144  D20C  MOV.L     #h'8C001000, R2
8C1DF146  D30D  MOV.L     #h'00000C00, R3
8C1DF148  6016  MOV.L     @R1+, R0
8C1DF14A  2202  MOV.L     R0, @R2
8C1DF14C  4310  DT        R3
8C1DF14E  8FFB  BF/S      h'8C1DF148
8C1DF150  7204  ADD       #h'04, R2
8C1DF152  D00B  MOV.L     #h'000000C0, R0
8C1DF154  6316  MOV.L     @R1+, R3
8C1DF156  4010  DT        R0
8C1DF158  8BFC  BF        h'8C1DF154
выглядит бесполезно, т.к. он копирует кусок БИОСа 1000 - 3FFF в раму, то есть область сисколлов, которые и так уже там лежат, и потом еще читает следующие 300h байтов, то есть до адреса 42FF
знакомая цифирка, да ? на единичку больше того якобы "магического" 42FE )
короче это и есть родная "прокачка".
а кусок данных 1000 - 42FE (сисколы с последующими 256 байт "мусора" и еще 511 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой


RE: BIOS protection by Holly - SWAT - 07.06.2016 09:01

Хмм так это получается еще одна дыра что-ли?
Можно было бы обойтись и без беты того биоса, что сейчас используем, раз можно прокачивать только небольшой кусок оригинального биоса.


RE: BIOS protection by Holly - MetalliC - 07.06.2016 14:08

не, для первоначального анлока этот кусок использовать не выйдет, его код не рассчитан на выполнение сразу после сброса и из рома.
так что это из разряда "а как же был задуман алгоритм повторного анлока G1 ATA для Mil-CD софта на самом деле"

PS: недавно разобрал алгоритм активации секретки так называемого 3D-биоса (и это делается довольно не тривиально, могу рассказать если кому интересно)
так что стало любопытно - есть ли какие-то еще секретки в биосе ? уже известные/описанные, либо лишь такие о которых ходили слухи