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 - 07.06.2016 14:30

А ну да, там же проверка сразу идет...
На сколько я знаю больше никаких секреток вроде и не было(не известно), ну кроме как смены фона в меню сохраненкой на VMU с текстурой, хотя это и не секретка вовсе...


RE: BIOS protection by Holly - MetalliC - 19.06.2016 21:21

еще интересности, обнаруженные сегодня в результате тестов с одним Норвежским приятелем -
у HOLLY есть регистр текущего состоянием защиты - 5F74EC, оттуда читаются такие цифирки:
0 - суммирование в процессе
2 - проверка завершена (было чтение из "последнего адреса"), и обломалась
3 - проверка прошла успешно.

я так понимаю, бит0 - результат проверки 1 - успешно 0 - облом, бит1 - состояние проверки 1 - завершена 0 - еще идет

PS: из регистра 5F74E4 всегда читается 000000FFh, еще каких-то недокументированных регистров в конце 5F74хх области похоже больше нет.


RE: BIOS protection by Holly - SWAT - 20.06.2016 10:34

Хех, удобный регистр однако Smile)) Надо будет поковырять как нибудь.


RE: BIOS protection by Holly - MetalliC - 20.06.2016 19:38

увы, инженеры Сеги оказались не полными идиотами - состояние этого регистра не обновляется в процессе проверки, т.е. если поставить размер блока побольше, потом считать 1Кб блок с валидной суммой - единичка в нем не появится, будет по прежнему 0.
так что лишь по конечному результату он ставится 2 или 3...


RE: BIOS protection by Holly - megavolt85 - 20.06.2016 22:11

если биос не прошёл проверку, можно запускать ещё раз проверку без ребута?


RE: BIOS protection by Holly - MetalliC - 21.06.2016 00:03

нельзя, если оно оказалось в состоянии номер 2 - всё, выйти с него можно только по сбросу. это мы еще пару лет назад выяснили, как и вобщем-то само наличие трех состояний и как они переключаются или не переключаются.
ну а то что я вчера нашел этот регистрик - финальный пруф Big Grin


RE: BIOS protection by Holly - SWAT - 21.06.2016 09:25

А можно Holly сбросить не трогая CPU и RAM? Да или хотя бы только CPU не трогать, без RAM можно обойтись.
Понятно что Reset у этого SOC есть, но он по моему тянет все за собой? Есть вроде как регистр 0x005F6890 для сброса, но я не понял как он работает, вроде надо записать туда очередную волшебную цифру 0x00007611, но дрим не ребутается от этого.


RE: BIOS protection by Holly - MetalliC - 21.06.2016 10:04

вроде больше никак, только через тот регистр, что почти аналогично аппаратному сбросу, после записи туда волшебной цифирки HOLLY инициирует процедуру сброса и генерирует сигналы Reset для всех компонентов системы. в доках есть описание - §8.1.2 Reset Sequence.

но я понял к чему ты клонишь, думал еще давно на эту тему, и в целом алгоритм и план действий понятен - надо наваять самопальный биос, который будет состоять из -
- 1кб бута, из аркадного HotD2 для разлочки G1
- следующего за ним самопального кода, который будет чего-то прокачивать/брутфорсить и проверять состояние защиты.
передавать результат по SCIF например, затем сохранять *куда-то* текущее состояние и делать сброс системы, на следующий шаг проверки.

на счет *куда-то*, случае наоми всё просто - у нее есть 32кб SRAM, в случае дрима посложнее - надо будет сохраняться в какую-то часть флешки.


RE: BIOS protection by Holly - megavolt85 - 21.06.2016 13:15

(21.06.2016 09:25)SWAT писал(а):  А можно Holly сбросить не трогая CPU и RAM? Да или хотя бы только CPU не трогать, без RAM можно обойтись.

только резать дорожку идущую к #greset

(21.06.2016 09:25)SWAT писал(а):  Понятно что Reset у этого SOC есть, но он по моему тянет все за собой? Есть вроде как регистр 0x005F6890 для сброса, но я не понял как он работает, вроде надо записать туда очередную волшебную цифру 0x00007611, но дрим не ребутается от этого.

у тебя аппаратная проблема, поэтому на твоей консоли не работает IGR


RE: BIOS protection by Holly - alex - 21.06.2016 13:27

(06.06.2016 23:10)MetalliC писал(а):  может тут кому-то будет интересно - стало любопытно каким макаром родные 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 байт нулей) обладает волшебной контрольной суммой и разлочивает схему защиты.
вот как разлочка для милцд была задумана и реализована самой Сегой
А ты блимы для GT2, MGS, Tekken 3 не прбовал ради интереса как они разлочку G1 делают.


RE: BIOS protection by Holly - SWAT - 21.06.2016 14:36

(21.06.2016 13:15)megavolt85 писал(а):  
(21.06.2016 09:25)SWAT писал(а):  Понятно что Reset у этого SOC есть, но он по моему тянет все за собой? Есть вроде как регистр 0x005F6890 для сброса, но я не понял как он работает, вроде надо записать туда очередную волшебную цифру 0x00007611, но дрим не ребутается от этого.

у тебя аппаратная проблема, поэтому на твоей консоли не работает IGR

Ну у меня он работает не всегда, когда то срабатывает как надо, когда то наполовину.

Alex, я думаю что блимы ничего особенного там не делают, а поступают так же как homebrew.


RE: BIOS protection by Holly - MetalliC - 21.06.2016 15:55

в блиме разлочка как в родных Mil-CD, по крайней мере в бете так

PS: не думаю что ребята еще тогда раскурили это дело, скорее просто целиком позаимствовали код инициализации гдрома какого-то из мил-цд, не понимая что это и как оно работает )


RE: BIOS protection by Holly - MetalliC - 22.06.2016 15:27

от японского камрада такая вещ появилась -
http://japanese-cake.livejournal.com/10056.html

у кого есть дрим с дуалбиосом, можете проверить грузится ли с этим биосмодом пиратка/хоумбрю с дисков ?


RE: BIOS protection by Holly - SWAT - 22.06.2016 21:10

(21.06.2016 10:04)MetalliC писал(а):  вроде больше никак, только через тот регистр, что почти аналогично аппаратному сбросу, после записи туда волшебной цифирки HOLLY инициирует процедуру сброса и генерирует сигналы Reset для всех компонентов системы. в доках есть описание - §8.1.2 Reset Sequence.

но я понял к чему ты клонишь, думал еще давно на эту тему, и в целом алгоритм и план действий понятен - надо наваять самопальный биос, который будет состоять из -
- 1кб бута, из аркадного HotD2 для разлочки G1
- следующего за ним самопального кода, который будет чего-то прокачивать/брутфорсить и проверять состояние защиты.
передавать результат по SCIF например, затем сохранять *куда-то* текущее состояние и делать сброс системы, на следующий шаг проверки.

на счет *куда-то*, случае наоми всё просто - у нее есть 32кб SRAM, в случае дрима посложнее - надо будет сохраняться в какую-то часть флешки.

Ну лучше флешку не насиловать Smile Можно по тому же SCIF сохранять и загружать состояние.
Надо бы попробовать оторвать Holly от всеобщего Reset'a.

(22.06.2016 15:27)MetalliC писал(а):  от японского камрада такая вещ появилась -
http://japanese-cake.livejournal.com/10056.html

у кого есть дрим с дуалбиосом, можете проверить грузится ли с этим биосмодом пиратка/хоумбрю с дисков ?

Исходя из описания, homebrew грузиться не должны, ведь он использовал этот же кусок биоса размером 1кб. Но автор почему то уверен что они все же работают...


RE: BIOS protection by Holly - megavolt85 - 22.06.2016 23:19

так он не про homebrew пишет, а про MIL-CD, а они будут работать, они ведь не весь биос прокачивают
или я не дочитал......


RE: BIOS protection by Holly - MetalliC - 22.06.2016 23:49

(22.06.2016 21:10)SWAT писал(а):  Ну лучше флешку не насиловать Smile
я тоже так подумал Smile
(22.06.2016 21:10)SWAT писал(а):  Можно по тому же SCIF сохранять и загружать состояние.
не очень вариант, если надо будет пробрутить миллионы проходов, SCIF тормозной.
так что наиболее приемлемым вариантом пока выглядит NAOMI с ее срамой.
(22.06.2016 21:10)SWAT писал(а):  Исходя из описания, homebrew грузиться не должны, ведь он использовал этот же кусок биоса размером 1кб. Но автор почему то уверен что они все же работают...
я вот тоже не понял, с какого перепуга он думает что пиратка должна работать
кстати, саму бутявку он чутка подправил под свои нужды, 4 байта разницы с оригиналом, но сумма норм, доступ к IDE есть.

(22.06.2016 23:19)megavolt85 писал(а):  так он не про homebrew пишет, а про MIL-CD, а они будут работать, они ведь не весь биос прокачивают
или я не дочитал......
хоумбрю, пиратка - всё это Mil-CD по определению


RE: BIOS protection by Holly - SWAT - 23.06.2016 08:33

(22.06.2016 23:49)MetalliC писал(а):  
(22.06.2016 21:10)SWAT писал(а):  Можно по тому же SCIF сохранять и загружать состояние.
не очень вариант, если надо будет пробрутить миллионы проходов, SCIF тормозной.
так что наиболее приемлемым вариантом пока выглядит NAOMI с ее срамой.

Да и флешка такой же тормоз в общем то. А вот SRAM конечно куда лучше.
Но вот где взять наоми... Может к дриму приколхозить что-то для быстрого сохранения состояния?

(22.06.2016 23:49)MetalliC писал(а):  
(22.06.2016 23:19)megavolt85 писал(а):  так он не про homebrew пишет, а про MIL-CD, а они будут работать, они ведь не весь биос прокачивают
или я не дочитал......
хоумбрю, пиратка - всё это Mil-CD по определению

Да даже если бы было какое то отличие, он как бы конкретно про homebrew говорит.

Цитата:Homebrews can also be rebuilt to GDI so that the 0GDTEXT.PVR texture shows up in the audio player Smile

Цитата:Decide whether the Dreamcast displays the SEGA license screen. In any case, the
IP.BIN initialisation and bootstraps code is still executed to be compatible with
homebrews that rely on a specific machine state at this point of execution.

Но опять же судя по этому:
Цитата:- neuroacid for his cool app, GDMenu, and his work to make it compatible with
this bootROM

Можно предположить что не работают homebrew без изменения прокачки биоса...


RE: BIOS protection by Holly - MetalliC - 23.06.2016 18:59

странно, но автор утверждает что вроде тестили и хомбрю/пиратка работает.
может кто-то попробовать и проверить ?

Цитата:Но вот где взять наоми...
ну, я щас через наоми развлекаюсь с этим делом. не сам, пишу скриптики из серии прочитать это, записать это, а человек на наоми запускает, вернее на ПК с подключенной по серийнику наоми.
для начального исследования пока хватает.


RE: BIOS protection by Holly - MetalliC - 23.06.2016 22:54

немножко результатов тестов:
--- нули в данных не влияют на текущий результат.
допустим в том 1Кб блоке есть ~240 байт нулей подряд, если тот кусок не вычитывать сумма всё еще ОК.
о чем это говорит ? алгоритм не из разряда каких-нибудь CRC, в которых текущая сумма на каждом шаге сдвигается/ксорится итп, а что-то на базе простых операций типа сложения или XOR, что не может не радовать ))

--- порядок данных имеет значение
т.е. если валидный блок вычитать задом-наперед - сумма не выстрелит.

--- адрес конца (5f74e4) можно менять,

--- адрес суммированной ячейки памяти не имеет значения, только сами данные
т.е. можно читать байтики откуда-угодно по lookup table, главное чтоб те что надо и верном порядке.

--- если проверку провалили, и оказались в состоянии №2 - запись в 5f74e4 всё же сбрасывает состояние в 0, но по результату прогона валидного блока данных он становится опять 2.
возможно эта пакость failed state устроена немножко иначе, на пример при записи 5f74e4 оно может просто не обнулять текущую сумму.


RE: BIOS protection by Holly - megavolt85 - 24.06.2016 02:58

(23.06.2016 22:54)MetalliC писал(а):  --- порядок данных имеет значение
т.е. если валидный блок вычитать задом-наперед - сумма не выстрелит.

попробуй по 8 байт вычитать задом-наперед