АППАРАТНЫЙ метод взлома с использованием
НЕМАСКИРУЕМОГО ПРЕРЫВАНИЯ.
© Павленко С.В., г. Севастополь.
Этот метод позволяет прерывать программы в кодах, дизассемблировать блоки кодов, изменять некоторые ячейки и восстанавливать дальнейшее прохождение программы. Частным случаем может служить поиск "бессмертия", остановка времени, замена оружия и так далее.
Сам процесс представляет собой загрузку монитора ("ковырялки") под ПЗУ с магнитной ленты по команде LOAD "" CODE (0000H-3FFFH). Далее нажимается клавиша NMI и проверяется правильность работы монитора. После команды EXIT управление передается Бейсику и можно загружать программу, которую необходимо взломать (игру). Во время возврата монитор сам установит конфигурацию, которая будет препятствовать стиранию монитора в ОЗУ под ПЗУ.
После загрузки и запуска игры остается, когда необходимо, нажать кнопку NMI и осмотреть всю память. Это позволяют различные функции монитора. Если надо возвратиться обратно в игру, набираем EXIT и продолжаем играть.
Практика показала, что если очень часто останавливать программу, то она может и "вылететь". Но в среднем, без особых потерь можно ее останавливать до десяти раз.
Листинг_1.
Сохранение значения акк. на стеке. Переключение ОЗУ и ПЗУ.
Сохранение HL на стеке. Переход по адресу, который задан как адрес перехода по ошибке. Восстановление HL со стека. Восстановление акк. и возврат в программу (переход с ОЗУ на ПЗУ желателен здесь).
Монитор ("ковырялка") - это творческая переработка мной и еще несколькими ребятами "Монитора 48К", сохраняет экран и все регистры процессора и размещена вместе со стеком и рабочими ячейками по адресу 0000H-3FFFH. Он позволяет дизассемблировать, искать, запоминать найденные ячейки и еще ряд удобных функций.
Для установки данной системы на своем компьютере необходимо сделать несколько операций. Для примера это показано для "Ленинграда-1".
1. Перешить участок памяти в ПЗУ.
2. Смонтировать кнопку NMI с антидребезговым устройством.
3. Смонтировать дополнительный переключающий порт.
1. При воздействии на вывод NMI=0 процессор передает управление на адрес 0066. ПЗУ необходимо перепрограммировать с введенными изменениями. Перешивка ПЗУ не приведет к побочным явлениям. Если у Вас есть ПК "Орель", данное изменение производить не надо, так как оно уже сделано см. Листинг_1.
0066 |
F5 |
PUSH |
AF |
0067 |
3E02 |
LD |
A, #02 |
0069 |
D37F |
OUT |
(#7F),A |
006b |
E5 |
PUSH |
HL |
006C |
2AB05C |
LD |
HL,(#5CB0) |
006F |
E9 |
JP |
(HL) |
0070 |
E1 |
POP |
HL |
0071 |
F1 |
POP |
AF |
0072 |
ED45 |
RET |
N |
2. Антидребезговое устройство предназначено для формирования одиночного отрицательного импульса для подачи на вывод NMI.
3. Дополнительный переключающий порт - самая ответственная часть переделки. Показан вариант для "Ленинград-1". В "Орель" необходимо сделать частичную переделку (защиту от записи под ПЗУ). Для других вариантов необходимо выполнить порт следующим образом.
Д15
D2 555ТМ5
D21-D28 К565РУ5Г
D4.2
RD.'WR-
Этот порт имеет адрес 7FXXH и структуру, показанную в Таблице_1
Таблица_1.
Бит |
Назначение |
D0 |
D0=0 - работа с ПЗУ1; D0=1 - работа с ПЗУ2. |
D1 |
D1=0 -в адресах 0000H-3FFFH находится ПЗУ; D1=1 -в этих адресах ОЗУ. |
D2 |
D2=0 -в ОЗУ 0000H-3FFFH разрешена запись; D2=1 -в ОЗУ в эти адреса запрещена запись. |
D3-D7 |
Не используются. |
Некоторые варианты загрузки в порт и возникающая конфигурация при этом приведены в Таблице_2. _Таблица_2.
DATA |
Конфигурация и применение |
00Н |
ПЗУ1. Включается основное ПЗУ, стандартная версия. |
01Н |
ПЗУ2. Включается альтернативное ПЗУ (другая версия). |
02Н; 03Н |
По адресам 0000H-3FFFH находится ОЗУ, запись в него разрешена, ПЗУ - отключено, работает монитор, копировщик 64К, редактор 64К или др. программы. |
04Н |
ПЗУ1. Подобно 00Н, но запись в ОЗУ по адресам 0000H-3FFFH запрещена. Конфигурация при взломе программ, когда они работают и могут записывать в адреса ПЗУ. |
05Н |
ПЗУ2. Аналогично 04Н, но для ПЗУ2. |
06Н; 07Н |
По адресам 0000H-3FFFH находится ОЗУ, но запись в него запрещена. Позволяет записать и запустить новую версию ПЗУ. Данное ОЗУ ведет себя подобно ПЗУ. |
Внимание! Возможно вместо ПЗУ1 16К поставить ПЗУ1 2К с записанной версией загрузчика, который позволяет загрузить ОЗУ с магнитофона и переключить страницы.
|