Conan, ясненько, спс) держите в курсе событий, а то жутко интересно чем дело кончиться)
Conan, ясненько, спс) держите в курсе событий, а то жутко интересно чем дело кончиться)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Апну, интересно восстановить клон.
"Во времена всеобщей лжи говорить правду - это экстремизм" © Джордж Оруэлл, "1984"
А остаток до 2КБ это защита этого кода? Тогда конечно проще переписать. Тем более ты наверное сможешь поставить ТЗ на это кодирование.
Вообще, у меня есть пара вопросов, ну так для популяризации темы среди тех кому NMI, WAIT и пр. тёмный лес ;-) Вопросы в первую очередь к тебе Conan, ты хоть эту прошивку и не писал, но при сём присутствовал :-)
Ну, начну по-порядку:
1. Насколько я правильно понимаю, "плавающие" биты (дальше по тексту ПБ) были в неисполняемых байтах (а то х.з. может это был полиморфный код :-)
2. В зависимости от внешних параметров (температура кристала и т.д.) карта ПБ не изменялась?
3. В течении первых 3-х секунд прошивка должна найти хотя-бы один байт с ПБ. Для этого просто вычитывается весь диапазон ПЗУ с многократным чтением каждого байта для вылова ПБ. Этот вопрос как бы не к тебе, но ты писFл, что учавствовал в отборе микрух для ПЗУ, какие были требования к ним для возможности использования в ZX-Next? Просто, я не понял, серийная версия прошивки (точнее таблица ПБ) была одинакова? Тогда при отборе микрух возможность выставить ПБ долна была быть в определённых байтах, или про 90% ты писАл имея в виду что практически любой бит в РФке можно выставить "плавающим"?
4. Вопрос по восстановлению прошивки, так сказать методом "brute force", что он нам даст, карту ПБ? И затем отталкиваясь от них надо отшелушивать защиту, в итоге просто получим чистый код VCPU? Т.е. опять же если это 10%, то может проще всё же написАть его заново, ибо врятли кто-то сейчат решится городить прграмматор для восстановления полной аутентичности.
5. С другой стороны если мы получим карту ПБ, то возможно удасться реализовать "логику" ПБ на ПЛИС или ещё как доступно?
З.Ы. Для автоматизации "brute force" наверно лучше подшаманить с софтом программатора, чтобы он автоматически снял 1000-10000 дампов, а уже потом засунуть это в OLAP дело техники. Нет ли программаторов с открытым кодом софта (наприемр Willem)?
"Во времена всеобщей лжи говорить правду - это экстремизм" © Джордж Оруэлл, "1984"
Там еще код для видеорежима CGA (640*200), инициализация (общая), общий кусочек для формирования прерываний, кадровых и строчных сигналов (включая врезки), гашения, сброс основного CPU, синхронизация при включении. Может что-то еще, но насколько я помню основная подпрограма очень небольшая (те самые 200 байт).
Вспомнить бы... По логике в неисполняемых. Потому, что при старте эти же ячейки как-то проверялись. Но точно помню, что напарник рассказывал про конструкции на условных RET-ах для проверки "плавания".
Да, поэтому и требовалось так много ПБ (чтобы покрыть требуемые значения питания и температуры).
Изначально требовалось что-бы вся ПЗУ была чистая и ее прошивали пробной дорожкой. Это первый этап. Затем зашивали нулями, затем стирали (отжигали) и дальше уже в программатор на финишную зашивку (ПБ). Если зашилось ОК, шили основной код. Помню был какой то самописный софт с прогрес-баром на экране при зашивке ПБ. И когда шили очередную партию, по скорости процесса уже было понятно, подойдет ПЗУ или нет.
Те, что выпускались при мне (я ушел из "Слота" раньше напарника), были одинаковы (таблицы ПБ). И их я передал CHRV. Но возможно в последних версиях были еще серийные номера. Встраивалось ли заполнение рандомизированными кодами неиспользуемых ячеек не помню, но скорее всего, нет. Хотя такая идея точно обсуждалась.
Скорее всего речь о том, что процент выхода ПЗУ годных для зашивки ПБ был высокий, а шили только определенные ячейки.
Да, карту ПБ и параметры переключения каждой отдельной ячейки (если программатор позволяет точно устанавливать напряжение питания).
Нет. Так можно сделать лишь точную (рабочую) копию. Для взлома защиты нужно разбирать код. Но если считать ПЗУ допустим при 6,5 вольтах и 3,5 вольтах, то точно все ПБ уйдут в единицу и ноль соответственно. Можно получить карту расположения ПБ, что бы облегчить разбор кода.
Это уже кому, что проще. Железячнику собрать программатор, программисту код собрать (или удалить защиту). Если не понятно с чего начинать, то я бы начал с разбора кода.
О таком подходе я не думал, но он рабочий, если научить ПЛИС подсовывать подходящие значения в ПБ. Вопрос лишь, как это реализовать на практике.
Там была особенность проверки, при старте проверялось наличие не менее чем (?) ПБ, а при основной работе не более чем (?) ПБ в узкой области.
"Во времена всеобщей лжи говорить правду - это экстремизм" © Джордж Оруэлл, "1984"
Почитал немного этого топика, дык вспомнил, что ПБ 100% шьёт программатор Турбо.
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
С уважением, Александр.
Scorpion ZS-256 Turbo+ GMX-2048
SID-Blaster/ZX
Музей ретрокомпьютеров в Минске!
Здесь ничего нет => http://byteman.by
И здесь тоже --->>> http://bytespace.by
Эту тему просматривают: 2 (пользователей: 0 , гостей: 2)