Неутомимый маньяг koe начал собирать очередной ZX

Postby нолька » 31 Mar 2008, 19:08

бугага. пацтолом. как мир меняется
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby KOE » 31 Mar 2008, 20:41

lvd wrote:Скорее даже, в этот меандр каждый каскад каки понапихает, и будет некий результат.


Угу, в моём тфм он стока шума по дороге собирал, шо писец. И с питалова, и с дисковода, и наводки с висевшего раньше в воздухе входа ...

lvd wrote:Кстати, а кто вместо 1 корпуса sot-223 ставит городушку на транзисторах и TL431 (ещё и совковых)?


Вопрос был в качестве, а не в количестве. Я то ладно, с детства на голову больной, поэтому со мной и так все ясно, но даже при этом хоть и сделал городушку из транзисторов, но из ширпотребных. А вот почему из всего множества советских операционников был выбран именно к157уд2 (далеко не ширпотребный) меня несколько удивило.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4676
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby deathsoft » 31 Mar 2008, 21:34

нолька wrote:я тоже сначала так думал.. но там z80 тупо эмулирует несколько счетчиков и генерирует инт, кс, сс... примитивная cpld как раз (чем тупо считать такты команд меги). Но КОЕ хочет именно оригинал, его право.


Тогда сделать на VHDL простейший обвес вокруг T80 из пзухи с этой программой и прогнать в modelsim - выхлоп со всех выводов - записать и просмотреть в виде временной диаграммы. (ну - можно и выполняемые опкоды тоже сбросить в файл, а потом уже дизасмить).

А уж шифрование - "шифром цезаря" - это только конан мог додуматься (перестановка ножек адреса местами). шифр цезаря - ломается за 5 секунд.
User avatar
deathsoft
 
Posts: 4719
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby KOE » 31 Mar 2008, 22:24

deathsoft wrote:Тогда сделать на VHDL простейший обвес вокруг T80 из пзухи с этой программой и прогнать в modelsim


Не ролучится, т.к. в родной ПЗУ защита с плавающими битами. Т.е. получится, если в качестве обвязки поставить именно родное ПЗУ, а не массив внутри фпга с его содержимым.

deathsoft wrote:А уж шифрование - "шифром цезаря" - это только конан мог додуматься (перестановка ножек адреса местами). шифр цезаря - ломается за 5 секунд.


Это 'защита от идиота', чтобы оный при попытке дизассеблировать прошивку получил фигню. Более того, там заведен М1 в один из адресных сигналов, т.е. КОПы и данные берутся из разных адресов в ПЗУшке (а не идут последовательно в памяти). И это перекодировать уже сложнее (но тоже можно и я уже оригинальный способ придумал). Это только первая часть.
Далее, в ПЗУ есть область с так называемыми 'плавающими битами', которые прошивались с пониженным напряжением программирования и, как следствие, при нескольких попытках произвести чтение выдают разный результат. Проверка на наличие такой области также производится. Т.е. если ее нет, то до свидания.
Т.е. методика влома прошивки следующая:
1. перекодировка с учетом перепутанных адресных сигналов, сигналов шины данных и М1 в одном из адресов. На выходе получаем объектный код, пригодный для дизассемблирования и отладки.
2. Дизассемблирование и снятие защиты. Тут я предполагаю 2 возможных варианта (т.к. пока вскрытие не начинал, то толком не знаю, что там и как): наличие плавающих битов проверяется отдельной процедурой единожды после сброса (наиболее вероятно), затем по результатам проверки выходим в вечный цикл формирования видеотаймингов, либо di:halt или нечто с аналогичным результатом в противном случае. 2 вариант - наличие плавающих битов проверяется прямо во время отработки видеотаймингов (маловероятно, но все же возможно).
Первый вариант устраняется элементарно (просто убираем обращение к соответствующей процедуре), со вторым придется повозиться, т.к. надо таким образом исключить действие защиты, чтобы не изменилось количество тактов в основном цикле.
3. Обратная перекодировка.
4. Обмывание.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4676
Joined: 15 Apr 2007, 13:06
Group: Registered users

Postby нолька » 01 Apr 2008, 10:11

KOE wrote:2 вариант - наличие плавающих битов проверяется прямо во время отработки видеотаймингов (маловероятно, но все же возможно).

Next ROM Video, был защищен от копирования, поэтому считанный код ничего не даст. Если его прошить в стандартное ПЗУ, то компьютер запустится, но проработает около трех секунд, а дальше темный экран. Убедиться в работоспособности платы, за это время можно, но не более того. Можешь попробовать.
Что бы отключить эту защиту, нужно было «пропатчить» десяток байт в ПЗУ. Несколько лет назад, Леня сознался, что он вряд ли вспомнит, где эти байты… Проще написать новое ПЗУ. Всего то - два килобайта. Кстати, на одной из тусовок, в 1994 году, Сергей Зонов пошутил, что наймет студента и за штуку баксов, тот разберет Next ROM Video по битам. На что я ответил, что проще написать новое.
....Проверка этого хозяйства проводилась в два этапа: При запуске, проверялся весь массив - главное было убедиться, что хоть какие то ячейки плавают. Времени требовалось мало: те самые три секунды, о которых я говорил в начале треда. Затем, в течение всего времени работы, накапливаем статистику, убеждаемся, что плавает только узкая область массива.
Несмотря на хитрую математику, реализовано было достаточно просто (за точность не ручаюсь): то ли RET делались из адресов из «плавающих» ячеек то ли JR-ы. Да это и не принципиально. Главное работает.
Объясняю как: Вот нашелся хитрый кул-хаскер, знает он про «недошитые» ячейки, берет хороший программатор, долго читает (может 100 а может и 10000 раз), при разных напряжениях и вычисляет все «плавающие» биты. Ага, говорит, понял я все! Берет софтину фирменную (или свою пишет), напругу понижает на программаторе и шьет все ячейки. Вставляет ПЗУ в ZX-Next, включает питание, отсчитывает, с замирание сердца, три секунды, и Ура! Все работает! Хрен. Через минуту или пять опять та же история – черный экран. Шьет еще одну ПЗУ, и опять тот же геморрой. Дальше уже не интересно.
Можно конечно предположить, что найдется маньяк, который возьмет штук 20 Next ROM Video, программатор, который умеет напряжение питания, с точностью до 0,005 вольт выставлять, программу напишет, которая данные из программатора в SQL будет загонять, прочитает каждый Next ROM Video, тысяч по десять раз и постоит красивый OLAP-овсий куб. И будет знать точно, какие ячейки, при каких условиях плавают. Да, признаюсь, о таких методах в 1993 году не думал.


ну и подолью еще масла в огонь - поскольку пзушка 2к выбирается в любом окне всего 64кб пространства адресов, то кодм может выполняться где угодно, при этом старшие адреса Z80 используются для формирования спец сигналов - NMI_vpu, flash, КСИ, blank, строб border/paper.
<alone> предлагаю тслабсу дать транк, но с условием чтобы он впилил туда спрайтотайлы, но не трогал атм
<LordVader> alone: яготов всосать срайты от тслабса )
<LordVader> атм режимы это пиздец
User avatar
нолька
рОвный
 
Posts: 1200
Joined: 08 Apr 2007, 20:12
Group: Registered users

Postby deathsoft » 01 Apr 2008, 10:21

KOE wrote:ПЗУ защита с плавающими битами.

Да знаю я про это, биты эти нас вообще не интересуют, интересует последовательность прохода адресов, после чего - массив даных из ПЗУ обрабатывается программой (на предмет перестановки адресов) и дизасмится в ида, дальше проверка плавающих битов патчится и про них забываем навсегда. Проще даже сделать не на VHDL, а на базе унреала, благо там есть компонент Z80 в виде отдельного класса.

P.S. Кстати програаматор который умеет напряжение питания выставлять у меня есть там от 2.5 до 5.5В, правда дампить вручную задолбаешься. Проще готовое криво сдампленое ПЗУ кракнуть.
Last edited by deathsoft on 01 Apr 2008, 10:24, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4719
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby deathsoft » 01 Apr 2008, 10:34

нолька wrote:ну и подолью еще масла в огонь - поскольку пзушка 2к выбирается в любом окне всего 64кб пространства адресов, то кодм может выполняться где угодно, при этом старшие адреса Z80 используются для формирования спец сигналов - NMI_vpu, flash, КСИ, blank, строб border/paper.

Эта проблема - решается тоже элементарно, образ 2к гркзится в ida 32 раза с разных адресов. при этом получается 64к кода. А дальше все дизасмится.

Инструкции типа JP будут выглядеть JP [<упр.сигналы> | <адрес в ПЗУ>], при этом в ида достаточно всего 2к кода главное старшие биты в джампах отбрасывать.

P.S. Кто дизасмил современные биосы оп ПЦ тот поймет.
Last edited by deathsoft on 01 Apr 2008, 10:43, edited 1 time in total.
User avatar
deathsoft
 
Posts: 4719
Joined: 07 Apr 2007, 00:58
Group: Registered users

Postby lvd » 01 Apr 2008, 14:37

KOE wrote: А вот почему из всего множества советских операционников был выбран именно к157уд2 (далеко не ширпотребный) меня несколько удивило.

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

KOE wrote: 2 вариант - наличие плавающих битов проверяется прямо во время отработки видеотаймингов (маловероятно, но все же возможно).


Так и есть. оно хвалилось, помнится, что если пзу тупо скопировать, то его говноподелие на таком поработает неско секунд или минут и коньки отбросит.

...скоко шума изза одного ахтунга, страдающего (уже много лет) манией величия. Я бы все платы и рабочие пзушки хзнехта демонстративно бы сжёг. 12ого. С записью на видео и вывешиванием в инете.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7239
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby robat_e » 01 Apr 2008, 15:13

lvd wrote:Я бы все платы и рабочие пзушки хзнехта демонстративно бы сжёг.

плюс стопицот, только я еще бы омиги туда добавил smile
Last edited by robat_e on 01 Apr 2008, 15:14, edited 1 time in total.
robat_e
 
Posts: 1269
Joined: 08 Apr 2007, 07:34
Group: Registered users

Postby KOE » 01 Apr 2008, 19:48

lvd wrote:Это для тебя он не ширпотребный


Раньше был. Помню, когда еще в школе учился, собирал эквалайзер на них, да не простой, а с какими-то хитрыми фильтрами на 2-х операционниках каждый. Собирал стереовариант на 10 полос, надо было 20 шт, так я на них деньги больше месяца копил. От время-то было... А щас купил их в кварце на Буженинова за 14р и проблем никаких.
Мы рождены, чтоб сказку сделать былью
"Кто не обломался, тем еще предстоит"
User avatar
KOE
 
Posts: 4676
Joined: 15 Apr 2007, 13:06
Group: Registered users

PreviousNext

Return to Hardware

Who is online

Users browsing this forum: No registered users and 2 guests