DC-SWAT Forum

Полная версия: BIOS protection by Holly
Вы просматриваете yпpощеннyю веpсию форума. Пеpейти к полной веpсии.
Страниц: 1 2 3 4 5 6 7 8
Прикрепляй к посту я проверю!
Ну чего там?!
В общем ситуация в данный момент такая.
Есть кусок биоса (1024 байт, видимо dev версии) из одного игрового автомата (на той же архитектуре), который проходит проверку Holly. Т.е. теоретически можно его подставить в начало кастомных биосов и запускать проверку только этого кусочка, контрольная сумма совпадает, а мы можем использовать оставшееся пространство как пожелаем. Не мало важный косяк со стороны разработчиков так это еще то, что в этом кусочке кода, есть переход (jump) за зону проверки, что фактически бесприпятственно подволяет подставить свой код к этому кусочку и ждать перехода в него при загрузке.
Но есть и обратная сторона медали. Дело в том что все homebrew прокачивают биос самостоятельно и они это делают на весь его размер. Это означает что homebrew которые есть сейчас, а с большей долей вероятности и последующие (кроме тех кто специально об этом позаботится) загружаться с HDD не смогут, так как сами же и заблокируют IDE интерфейс.

В любом случае, если с этим куском биоса что-то выгорит, то для коммерческих игр можно спокойно использовать такие биосы, уж в DS то код прокачки биоса я поправлю обязательно Smile
Так же это может помочь в окончательном взломе защиты Holly, так как можно сделать значительно более быстрый брутфорс.
Пока правда это только теория, лично я еще не успел попробовать, как сделаю тестовую версию и проверю, то отпишусь здесь.
Да я думаю пропатчить старые программы не сложно будет. Ну а так ждём результатовSmile
Пропатчить то может и не сложно, просто неудобно это Sad Ну да ладно, я думаю и эта проблема решится со временем.
Кстати сделал сборку биоса с этим куском, пока правда проверить не могу, вечером или завтра только смогу. Может есть желающие сделать это прямо сейчас?
Дак ты скинь ссылку, я думаю найдутся те кто протестируетSmile
Да ладно, уже сам скоро проверю. Мне еще MetalliC дал биос, обычный в целом, но с этим куском и проверяется в нем только он. Говорит на авроре (игровой автомат) работает, надо будет еще на дриме проверить тоже, чтобы убедиться окончательно в работоспособности этой затеи. Если будет работать, значит буду доводить до ума свои кастомные биосы, если не заработает первая версия сразу Smile
Первый раз слышу об этом игровом автомате) Ну ладно, будем ждать результатовSmile
Так, у меня планы поменялись на вечер, так что сегодня проверить не смогу.
Выкладываю оба биоса, проверьте кто-нибудь плиз - https://dl.dropboxusercontent.com/u/4597..._bioses.7z
Проверил сегодня биосы. В общем это победа! Пусть еще не окончательная, но все же.
BIOS от MetalliC работает, правда ожидаемо homebrew не запускаются, стопорится на экране IP.BIN'a (а точнее в начале выполнения 1ST_READ), но очевидно что привод работает, так как IP.BIN загрузился.
Мой биос что-то черный экран показывает, видимо я где-то ошибся, но это мелочи, исправлю. Главное что теория подтвердилась практикой!
MetalliC, молодца!!!
Ну чего там щас происходит?
Пока в общем нечего говорить, я не занимался этим вопросом на выходных.
С кастомными биосами быстро не получилось, почему-то DC не стартует, я пока попробовал 3 варианта сборки, во всех результат один - пустота.
Возможно для начала я просто внедрю boot loader в оригинальный биос, тот что модифицировал MetalliC, пока не пойму чего не хватает в коде bootstrap для полностью кастомных биосов.
Ну что, биос с бут лодером готов?
Пока нет времени этим заниматься Sad
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
Ок, спасибо, скоро сделаю загрузчик и слеплю все в кучу.
может тут кому-то будет интересно - стало любопытно каким макаром родные 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 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой
Хмм так это получается еще одна дыра что-ли?
Можно было бы обойтись и без беты того биоса, что сейчас используем, раз можно прокачивать только небольшой кусок оригинального биоса.
не, для первоначального анлока этот кусок использовать не выйдет, его код не рассчитан на выполнение сразу после сброса и из рома.
так что это из разряда "а как же был задуман алгоритм повторного анлока G1 ATA для Mil-CD софта на самом деле"

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