logo search
ZX-Review-1992-01-12

2.1 Загрузка Бейсика через блок кодов.

После того, как читатель ознакомился со структурой хэдера, ему становится ясно, что фактически между заголовком Бейсика и заголовком кодов разница небольшая. А разницы между непосредственным файлом Бейсика и непосредственным файлом кодов нет вообще никакой.

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

Бейсик файл загружается в память компьютера начиная с адреса, задаваемого системной переменной PROG, блок кодов же загружается с адреса, указанного в хэдере.

Бейсик файл обрабатывается интерпретатором как определенная последовательность символов кодов Бейсика. Блок кодов обрабатывается процессором как последовательность кодов Z80.

На этом свойстве этих файлов и основан данный метод взлома. В самом деле, нам ничего не стоит обмануть компьютер он думает, что загружает в память файл кодов, а на самом деле загружает файл Бейсика и при этом он не сможет установить никакой ошибки. Поскольку при той проверке, которую осуществляет "ZX SPECTRUM", такую ошибку установить просто напросто невозможно.

Итак, рассмотрим этот метод более подробно.

Нам необходимо изучить структуру Бейсик файла, при этом, чтобы избежать запуска команд и процедур, осуществляющих защиту, нам необходимо загрузить программу в память без автозапуска, т. е. так, чтобы она не стартовала, если в ней предусмотрена такая возможность.

Для того, чтобы решить данную задачу, нам необходимо прежде всего узнать длину Бейсик файла. Это можно сделать, воспользовавшись вышеприведенной программой для анализа хэдера. То же можно сделать и воспользовавшись программой копировщиком.