logo
ZX-Review-1992-01-12

ЗАЩИТА ПРОГРАММ

Сегодня мы продолжаем разговор о приемах защиты программ от просмотра. Начало статьи см. в "ZX РЕВЮ" 1 2, 1992 г., стр. 9 16.

2.3.4. Управляющие коды, используемые для защиты от просмотра.

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

Итак по порядку.

Код N7 EDIT не используется для целей защиты. Это управляющий код, который создает программа ввода с клавиатуры при нажатии клавиш "CAPS SHIFT" и "1" для вызова строки в область редактирования. Эта область изменяется в соответствии с размерами строки.

N8 BACKSPACE. Этот код, означающий в переводе с английского "Курсор назад" достаточно широко используется для скрытия некоторых частей строки Бейсика, для накладывания частей друг на друга с целью дезинформации и для создания необычных эффектов, один из которых был нами рассмотрен в примерах (раздел 2.3.2).

Естественно, можно использовать этот код сразу для нескольких целей одновременно. Рассмотрим теоретические способы использования BACKSPACE для скрытия информации и исполнения накладок (с практическими приемами Вы будете ознакомлены в следующей статье).

Предположим, первой строкой в Вашей программе идет строка, выполняющая реальные действия, например осуществляющая запуск программы в машинных кодах, встроенной в Бейсик (о том как сделать такую программу читайте в Главе 1. Эта программа осуществляет реальную загрузку и только она может правильно загрузить и запустить блок кодов с магнитной ленты.

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

Ловушки могут быть самые разные от продолжения программы на Бейсике, создающей видимость загрузки до запуска программы в кодах в таком месте, где либо коды умышленно путаются с целью зависания компьютера, либо с отправкой на команду АССЕМБЛЕРа JP 0000, аналогичной RANDOMIZE USR 0, что обеспечивает перезапуск компьютерной системы). Таким образом, вся сложность подобной системы защиты сводится к тому, чтобы освоить создание невидимой строки.

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

** *

Примечание: ещё больше затруднить поиск точного адреса старта Вашей программы в кодах можно используя измененный вариант числа управляющим кодом 14, который описан ниже, а кроме этого рекомендуется искажать подлинный смысл операторов Бейсика

сиспользованием методов, описанных в разделе "Новейшие достижения защиты".

* * *