ЗАЩИТА ПРОГРАММ
Сегодня мы продолжаем разговор о приемах защиты программ от просмотра. Начало статьи см. в "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, который описан ниже, а кроме этого рекомендуется искажать подлинный смысл операторов Бейсика
сиспользованием методов, описанных в разделе "Новейшие достижения защиты".
* * *
- BETA BASIC
- ГЛАВА 1. ВВЕДЕНИЕ
- ГЛАВА 2. РЕДАКТИРОВАНИЕ
- Курсор текущей строки
- Команда LIST FORMAT
- Команда CSIZE
- Команды JOIN <номера строк> и SPLIT.
- Управляющий код "новая строка".
- ГЛАВА 3. ПРОЦЕДУРЫ
- Передача параметров списком
- ГЛАВА 4. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- ГЛАВА 5. ОБРАБОТКА ДАННЫХ
- ГЛАВА 6. ГРАФИКА
- ЗАЩИТА ПРОГРАММ
- ЧАСТЬ 1
- ГЛАВА 1. Исключение возможности остановки программ.
- 1.1. Общие рекомендации.
- 1.6. Метод защиты, используемый в программе FIST III.
- 2.3. Использование управляющих кодов.
- 40 ЛУЧШИХ ПРОЦЕДУР
- РАЗДЕЛ А
- 1. ВВЕДЕНИЕ
- Общие сведения о Бейсике и машинных кодах
- 2. ВНУТРЕННЯЯ СТРУКТУРА ZX SPECTRUM
- Карта памяти
- Атрибуты
- Буфер принтера
- Область программ на BASICe
- 5.Подпрограммы сдвига.
- 5.1Сдвиг атрибутов влево.
- 5.5 Сдвиг влево на один символ.
- МАСТЕРФАЙЛ 09 полная русификация.
- ВСТУПЛЕНИЕ.
- 3. Перевод программы на русский язык.
- POKES
- POKES
- NETHER EARTH
- HEAD OVER HEELS
- BETA BASIC
- РАЗДЕЛ 2. КОМАНДЫ
- 1. ALTER <атрибуты> ТО атрибуты
- 2. ALTER <ссылка> ТО ссылка
- 7. CLS <номер окна>
- 8. CONTROL CODES (управляющие коды)
- 12. DEF KEY односимвольная строка; строка
- ЗАЩИТА ПРОГРАММ
- ПРОГРАММА ДЛЯ СНЯТИЯ ЗАЩИТ
- Глава 3. Методы защиты от MERGE
- 40 ЛУЧШИХ ПРОЦЕДУР
- 5.8 Сдвиг вниз на один символ.
- 5.12 Сдвиг вниз на один пиксел.
- 6.ДИСПЛЕЙНЫЕ ПРОГРАММЫ
- 6.1 Слияние картинок
- 6.2. Инвертирование экрана.
- 6.6 Изменение атрибута.
- 6.9 Построение шаблонов.
- Текстовые сообщения программы MF 09 и их перевод
- ЗАКЛЮЧЕНИЕ.
- 0. Torneo
- SNOOKER
- Правила игры.
- FORUM
- Версия 1.
- Версия 2.
- Версия 3
- Перелеты к двойным звездам и невидимым звездам.
- Тайные возможности компьютера.
- СПЕКТРУМ В ШКОЛЕ
- BETA BASIC
- 22. EXIT IF <условие>
- 23. FILL x,y
- 28. KEYIN строковая переменная
- 29. KEYWORDS число.
- ЗАЩИТА ПРОГРАММ
- Глава 4. Прочие приемы защиты.
- 4.1Запуск программ в кодах.
- Глава 1. Введение
- Общие рекомендации.
- Глава 2. Блокировка автозапуска.
- Введение.
- 2.1 Загрузка Бейсика через блок кодов.
- 40 ЛУЧШИХ ПРОЦЕДУР
- 7.ПРОЦЕДУРЫ ОБРАБОТКИ ПРОГРАММ.
- 7.1Удаление блока программы.
- 7.4 Создание REM строк
- 8.ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММЫ
- 8.1Определение размера свободной памяти.
- ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
- КАНАЛЫ И ПОТОКИ
- ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- ОБРАБОТКА ОШИБОК В БЕЙСИКЕ
- ПРЕДОТВРАЩЕНИЕ ОСТАНОВКИ БЕЙСИК ПРОГРАММЫ
- 1. Блок кодов "ON ERROR GO TO"
- FORUM
- Полезные советы.
- Письмо читателя.
- Проблемы совместимости.
- Уровень II.
- Выполнение миссии.
- Сводка боевых команд
- SHERLOCK
- Понедельник, 8:00
- НАШ КОНКУРС
- Наши предложения.
- Наши условия:
- BETA BASIC
- 34. LIST FORMAT число.
- 42. ON ERROR номер строки
- 46. POP <числовая переменная>
- 47. PROC имя <параметр><,параметр><,параметр>...
- 2.2.2Изменение хэдера для блокировки автозапуска.
- 40 ЛУЧШИХ ПРОЦЕДУР
- 8.5 Составление списка переменных.
- 8.7 Поиск и замещение строки.
- Формат данных в "Спектруме"
- Числовая переменная с именем из одной буквы.
- Числовая переменная с именем более чем из одной буквы.
- Числовой массив.
- ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- Управляющие символы.
- Другие приемы управления позицией и цветом печати.
- Организация экранной памяти.
- Файл атрибутов.
- Эмуляция команд БЕЙСИКа из машинного кода.
- Скроллинг экрана.
- СЛУЧАЙНАЯ ГРАФИКА
- СЛУЧАЙНАЯ ГРАФИКА
- КРИБЕДЖ
- КРИБЕДЖ
- Программа
- Комментарий
- BETA BASIC
- 53. SAVE <строка TO строка;> устройство;> имя
- 56. SPLIT (не ключевое слово).
- 57. TRACE номер строки
- РАЗДЕЛ 3. ФУНКЦИИ
- ЗАЩИТА ПРОГРАММ
- 3.2Работа со встроенными машинными кодами.
- Глава 4. Изучение блоков в машинных кодах.
- 4.1 Введение.
- 4.2.2. Новые возможности программы "RENEGADE".
- ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- "ДЕБЮТ ПРОГРАММЫ"
- УНИВЕРСАЛЬНОЕ МЕНЮ
- Программа "PRIM"
- Маленькие Хитрости
- Маленькие хитрости
- ОШИБКИ ПЗУ
- 1. Ограничение по использованию регистровой пары IY.
- 2. Особенности регистровой пары H'L' (альтернативной).
- BETA BASIC
- 6. DPEEK (адрес).
- 7. EOF (номер потока).
- 12. ITEM ()
- 13. LENGTH (n, "имя массива")
- 21. SHIFT$ (число, строка)
- 24. TIME$ ()
- 25. USING$ (строка, число)
- 26. XOR (число, число)
- ПРИЛОЖЕНИЕ 1
- ПРИЛОЖЕНИЕ 2.
- ПРИЛОЖЕНИЕ 3
- Коды ошибок.
- ЗАЩИТА ПРОГРАММ
- 1.2 Смещение системной переменной PROG.
- 1.4 Новые POKES.
- Том 4. Методы защиты программ от копирования.
- Введение.
- ОШИБКИ ПЗУ
- 8. Ошибка CLOSE#.
- 9. Ошибка CHR$ 9.
- 13. Ошибка SCREEN$.
- Ошибки в редакторе
- 14. Ошибка Scroll?.
- 18 Ошибка проверки синтаксиса.
- Ошибки калькулятора
- 19. Ошибка MOD_DIV.
- 20.Ошибка E_TO_FP.
- ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- Блок кодов, воспроизводящий звук.
- Ввод параметров при помощи оператора INPUT.
- КАК ЭТО ДЕЛАЕТСЯ!
- RANARAMA
- Предварительные исследования.
- 1. Дизайн экрана.
- 2. Раскладка оперативной памяти.
- 3. Упаковка данных.
- THE DARK WHEEL
- ГЛАВА 3.
- ГЛАВА 4