18.09.2014, 18:57
19.09.2014, 07:07
Ну чего там?!
19.09.2014, 08:11
В общем ситуация в данный момент такая.
Есть кусок биоса (1024 байт, видимо dev версии) из одного игрового автомата (на той же архитектуре), который проходит проверку Holly. Т.е. теоретически можно его подставить в начало кастомных биосов и запускать проверку только этого кусочка, контрольная сумма совпадает, а мы можем использовать оставшееся пространство как пожелаем. Не мало важный косяк со стороны разработчиков так это еще то, что в этом кусочке кода, есть переход (jump) за зону проверки, что фактически бесприпятственно подволяет подставить свой код к этому кусочку и ждать перехода в него при загрузке.
Но есть и обратная сторона медали. Дело в том что все homebrew прокачивают биос самостоятельно и они это делают на весь его размер. Это означает что homebrew которые есть сейчас, а с большей долей вероятности и последующие (кроме тех кто специально об этом позаботится) загружаться с HDD не смогут, так как сами же и заблокируют IDE интерфейс.
В любом случае, если с этим куском биоса что-то выгорит, то для коммерческих игр можно спокойно использовать такие биосы, уж в DS то код прокачки биоса я поправлю обязательно
Так же это может помочь в окончательном взломе защиты Holly, так как можно сделать значительно более быстрый брутфорс.
Пока правда это только теория, лично я еще не успел попробовать, как сделаю тестовую версию и проверю, то отпишусь здесь.
Есть кусок биоса (1024 байт, видимо dev версии) из одного игрового автомата (на той же архитектуре), который проходит проверку Holly. Т.е. теоретически можно его подставить в начало кастомных биосов и запускать проверку только этого кусочка, контрольная сумма совпадает, а мы можем использовать оставшееся пространство как пожелаем. Не мало важный косяк со стороны разработчиков так это еще то, что в этом кусочке кода, есть переход (jump) за зону проверки, что фактически бесприпятственно подволяет подставить свой код к этому кусочку и ждать перехода в него при загрузке.
Но есть и обратная сторона медали. Дело в том что все homebrew прокачивают биос самостоятельно и они это делают на весь его размер. Это означает что homebrew которые есть сейчас, а с большей долей вероятности и последующие (кроме тех кто специально об этом позаботится) загружаться с HDD не смогут, так как сами же и заблокируют IDE интерфейс.
В любом случае, если с этим куском биоса что-то выгорит, то для коммерческих игр можно спокойно использовать такие биосы, уж в DS то код прокачки биоса я поправлю обязательно
Так же это может помочь в окончательном взломе защиты Holly, так как можно сделать значительно более быстрый брутфорс.
Пока правда это только теория, лично я еще не успел попробовать, как сделаю тестовую версию и проверю, то отпишусь здесь.
19.09.2014, 10:13
Да я думаю пропатчить старые программы не сложно будет. Ну а так ждём результатов
19.09.2014, 10:44
Пропатчить то может и не сложно, просто неудобно это Ну да ладно, я думаю и эта проблема решится со временем.
Кстати сделал сборку биоса с этим куском, пока правда проверить не могу, вечером или завтра только смогу. Может есть желающие сделать это прямо сейчас?
Кстати сделал сборку биоса с этим куском, пока правда проверить не могу, вечером или завтра только смогу. Может есть желающие сделать это прямо сейчас?
19.09.2014, 11:00
Дак ты скинь ссылку, я думаю найдутся те кто протестирует
19.09.2014, 13:00
Да ладно, уже сам скоро проверю. Мне еще MetalliC дал биос, обычный в целом, но с этим куском и проверяется в нем только он. Говорит на авроре (игровой автомат) работает, надо будет еще на дриме проверить тоже, чтобы убедиться окончательно в работоспособности этой затеи. Если будет работать, значит буду доводить до ума свои кастомные биосы, если не заработает первая версия сразу
19.09.2014, 13:24
Первый раз слышу об этом игровом автомате) Ну ладно, будем ждать результатов
19.09.2014, 13:45
Так, у меня планы поменялись на вечер, так что сегодня проверить не смогу.
Выкладываю оба биоса, проверьте кто-нибудь плиз - https://dl.dropboxusercontent.com/u/4597..._bioses.7z
Выкладываю оба биоса, проверьте кто-нибудь плиз - https://dl.dropboxusercontent.com/u/4597..._bioses.7z
20.09.2014, 09:28
Проверил сегодня биосы. В общем это победа! Пусть еще не окончательная, но все же.
BIOS от MetalliC работает, правда ожидаемо homebrew не запускаются, стопорится на экране IP.BIN'a (а точнее в начале выполнения 1ST_READ), но очевидно что привод работает, так как IP.BIN загрузился.
Мой биос что-то черный экран показывает, видимо я где-то ошибся, но это мелочи, исправлю. Главное что теория подтвердилась практикой!
BIOS от MetalliC работает, правда ожидаемо homebrew не запускаются, стопорится на экране IP.BIN'a (а точнее в начале выполнения 1ST_READ), но очевидно что привод работает, так как IP.BIN загрузился.
Мой биос что-то черный экран показывает, видимо я где-то ошибся, но это мелочи, исправлю. Главное что теория подтвердилась практикой!
20.09.2014, 09:54
MetalliC, молодца!!!
22.09.2014, 10:28
Ну чего там щас происходит?
22.09.2014, 12:47
Пока в общем нечего говорить, я не занимался этим вопросом на выходных.
С кастомными биосами быстро не получилось, почему-то DC не стартует, я пока попробовал 3 варианта сборки, во всех результат один - пустота.
Возможно для начала я просто внедрю boot loader в оригинальный биос, тот что модифицировал MetalliC, пока не пойму чего не хватает в коде bootstrap для полностью кастомных биосов.
С кастомными биосами быстро не получилось, почему-то DC не стартует, я пока попробовал 3 варианта сборки, во всех результат один - пустота.
Возможно для начала я просто внедрю boot loader в оригинальный биос, тот что модифицировал MetalliC, пока не пойму чего не хватает в коде bootstrap для полностью кастомных биосов.
06.10.2014, 14:02
Ну что, биос с бут лодером готов?
06.10.2014, 15:08
Пока нет времени этим заниматься
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
09.10.2014, 11:31
Ок, спасибо, скоро сделаю загрузчик и слеплю все в кучу.
06.06.2016, 23:10
может тут кому-то будет интересно - стало любопытно каким макаром родные Mil-CD софтины делают разлочку G1, оказалось совсем не так как хоумбрю/пиратка.
если помните, перед запуском бинарников биос пишет в 5F74E4 типа магическое число - 42FE, которое как я и предполагал не отфонарное, а реальный конечный адрес данных которые будут прогоняться через схему защиты.
собсно в бинарнике милцд встречается такой код:
выглядит бесполезно, т.к. он копирует кусок БИОСа 1000 - 3FFF в раму, то есть область сисколлов, которые и так уже там лежат, и потом еще читает следующие 300h байтов, то есть до адреса 42FF
знакомая цифирка, да ? на единичку больше того якобы "магического" 42FE )
короче это и есть родная "прокачка".
а кусок данных 1000 - 42FE (сисколы с последующими 256 байт "мусора" и еще 511 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой
если помните, перед запуском бинарников биос пишет в 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
знакомая цифирка, да ? на единичку больше того якобы "магического" 42FE )
короче это и есть родная "прокачка".
а кусок данных 1000 - 42FE (сисколы с последующими 256 байт "мусора" и еще 511 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой
07.06.2016, 09:01
Хмм так это получается еще одна дыра что-ли?
Можно было бы обойтись и без беты того биоса, что сейчас используем, раз можно прокачивать только небольшой кусок оригинального биоса.
Можно было бы обойтись и без беты того биоса, что сейчас используем, раз можно прокачивать только небольшой кусок оригинального биоса.
07.06.2016, 14:08
не, для первоначального анлока этот кусок использовать не выйдет, его код не рассчитан на выполнение сразу после сброса и из рома.
так что это из разряда "а как же был задуман алгоритм повторного анлока G1 ATA для Mil-CD софта на самом деле"
PS: недавно разобрал алгоритм активации секретки так называемого 3D-биоса (и это делается довольно не тривиально, могу рассказать если кому интересно)
так что стало любопытно - есть ли какие-то еще секретки в биосе ? уже известные/описанные, либо лишь такие о которых ходили слухи
так что это из разряда "а как же был задуман алгоритм повторного анлока G1 ATA для Mil-CD софта на самом деле"
PS: недавно разобрал алгоритм активации секретки так называемого 3D-биоса (и это делается довольно не тривиально, могу рассказать если кому интересно)
так что стало любопытно - есть ли какие-то еще секретки в биосе ? уже известные/описанные, либо лишь такие о которых ходили слухи