- •Спектрум в школе
- •1. "LISTNAME"
- •2. "REMONT"
- •BETA BASIC
- •ГЛАВА 1. ВВЕДЕНИЕ
- •ГЛАВА 2. РЕДАКТИРОВАНИЕ
- •Курсор текущей строки
- •Команда EDIT <номер строки>
- •Переключение режимов курсора
- •Управление вводом ключевых слов
- •Проверка синтаксиса
- •Команда LIST FORMAT
- •Команда CSIZE
- •Команды JOIN <номера строк> и SPLIT.
- •Управляющий код "новая строка".
- •ГЛАВА 3. ПРОЦЕДУРЫ
- •Передача параметров в виде ссылки
- •Передача параметров списком
- •Рекурсия
- •Ошибки
- •ГЛАВА 4. СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ
- •ГЛАВА 5. ОБРАБОТКА ДАННЫХ
- •ГЛАВА 6. ГРАФИКА
- •ГЛАВА 7. СЕРВИСНЫЕ И ОТЛАДОЧНЫЕ ВОЗМОЖНОСТИ
- •ЗАЩИТА ПРОГРАММ
- •ЧАСТЬ 1
- •ГЛАВА 1. Исключение возможности остановки программ.
- •1.1. Общие рекомендации.
- •1.2 Подпрограмма обработки сообщений с кодами D, H, L.
- •1.6. Метод защиты, используемый в программе FIST III.
- •2.1. Общие рекомендации.
- •2.3. Использование управляющих кодов.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •РАЗДЕЛ А
- •1. ВВЕДЕНИЕ
- •Общие сведения о Бейсике и машинных кодах
- •2. ВНУТРЕННЯЯ СТРУКТУРА ZX SPECTRUM
- •Карта памяти
- •PEEK и POKE
- •Дисплейный файл
- •Атрибуты
- •Буфер принтера
- •Область программ на BASICe
- •Цифровой пятибайтный формат
- •Область переменных
- •Подпрограммы ПЗУ
- •3. МАШИННЫЙ ЯЗЫК Z80
- •Регистры Z80A
- •РАЗДЕЛ B
- •4. ВВЕДЕНИЕ
- •Загрузчик машинного кода
- •5. Подпрограммы сдвига.
- •5.1 Сдвиг атрибутов влево.
- •5.2 Сдвиг атрибутов вправо.
- •5.3 Сдвиг атрибутов вверх.
- •5.4 Сдвиг атрибутов вниз.
- •5.5 Сдвиг влево на один символ.
- •5.6 Сдвиг вправо на один символ.
- •5.7 Сдвиг вверх на один символ
- •МАСТЕРФАЙЛ 09 полная русификация.
- •ВСТУПЛЕНИЕ.
- •2. Использование дополнительного символьного набора.
- •3. Перевод программы на русский язык.
- •СОВЕТЫ ЭКСПЕРТОВ
- •STALINGRAD
- •Введение.
- •Управление игрой
- •Некоторые детали
- •Уровни сложности игры
- •Выгрузка файлов на ленту
- •Замечания
- •FLIGHT SIMULATION
- •Аспекты полета
- •Приборная панель
- •Управление самолетом
- •Навигация
- •STAR RAIDERS
- •Враги
- •Запуск игры
- •Экран
- •Управление
- •Энергия
- •THE TRAIN
- •Краткий сюжет
- •Настройка программы
- •Экран
- •Управление
- •Мост (BRIDGE)
- •Станция (STATION)
- •Развилка или перекресток (SWITCH)
- •DEATH WISH 3
- •FORUM
- •Проблемы ELITE
- •Итоги конкурса на лучший технологически развитый маршрут.
- •POKES
- •Вопросы совместимости.
- •Просьба о помощи.
- •И снова SHERLOCK.
- •СПЕКТРУМ В ШКОЛЕ
- •К УРОКУ ИСТОРИИ.
- •POKES
- •NETHER EARTH
- •HEAD OVER HEELS
- •INTO THE EAGLE'S NEST
- •URIDIUM
- •AMAUROTE
- •GAUNTLET
- •BETA BASIC
- •РАЗДЕЛ 2. КОМАНДЫ
- •1. ALTER <атрибуты> ТО атрибуты
- •2. ALTER <ссылка> ТО ссылка
- •3. AUTO <номер строки> <,шаг>
- •4. BREAK
- •5. CLEAR число.
- •6. CLOCK число или строка
- •7. CLS <номер окна>
- •8. CONTROL CODES (управляющие коды)
- •Коды управления экранными блоками.
- •9. COPY строка COPY массив
- •10. CSIZE ширина <, высота>
- •11. DEFAULT = устройство
- •12. DEF KEY односимвольная строка; строка
- •13. DEF PROC имя процедуры <параметр><,REF параметр>...
- •14. DELETE <номер строки> ТО <номер строки>.
- •15. DELETE имя массива <пределы>
- •ЗАЩИТА ПРОГРАММ
- •ПРОГРАММА ДЛЯ СНЯТИЯ ЗАЩИТ
- •Глава 3. Методы защиты от MERGE
- •40 ЛУЧШИХ ПРОЦЕДУР
- •5.8 Сдвиг вниз на один символ.
- •5.9 Сдвиг влево на один пиксел.
- •5.10 Сдвиг вправо на один пиксел.
- •5.11 Сдвиг вверх на один пиксел.
- •5.12 Сдвиг вниз на один пиксел.
- •6.ДИСПЛЕЙНЫЕ ПРОГРАММЫ
- •6.1 Слияние картинок
- •6.2. Инвертирование экрана.
- •6.3 Инвертирование символа вертикально.
- •6.4 Инвертирование символа горизонтально.
- •6.5 Вращение символа по часовой стрелке.
- •6.6 Изменение атрибута.
- •6.7 Смена атрибута.
- •6.8 Закрашивание контура.
- •6.9 Построение шаблонов.
- •6.10 Увеличение экрана и копирование.
- •Текстовые сообщения программы MF 09 и их перевод
- •ЗАКЛЮЧЕНИЕ.
- •СОВЕТЫ ЭКСПЕРТОВ
- •PROFESSIONAL TENNIS
- •1. Controles
- •2. Equipamiento
- •3. Entrenamiento
- •4. Caracteristicas
- •0. Torneo
- •SNOOKER
- •Правила игры.
- •Настройка программы.
- •Структура экрана.
- •Начало игры.
- •QUAZATRON
- •CAPTAIN FIZZ
- •Экран программы.
- •Полезные советы.
- •FORUM
- •Версия 1.
- •Версия 2.
- •Версия 3
- •Перелеты к двойным звездам и невидимым звездам.
- •Тайные возможности компьютера.
- •Советы и секреты.
- •СПЕКТРУМ В ШКОЛЕ
- •BETA BASIC
- •17. DPOKE адрес, число
- •18. DRAW ТО x,y <,угол>
- •18. EDIT <номер строки>
- •9. EDIT строковая переменная
- •20. ELSE <оператор>
- •21. END PROC
- •22. EXIT IF <условие>
- •23. FILL x,y
- •24. GET числовая переменная
- •25. GET строковая переменная, x,y <ширина, длинах><;тип>
- •26. JOIN <номер строки>
- •27. JOIN строковый массив или числовой массив.
- •28. KEYIN строковая переменная
- •29. KEYWORDS число.
- •30. LET переменная = число <, переменная = число>...
- •31. LIST <номер строки> TO <номер строки>
- •32. LIST DATA
- •33. LIST DEF KEY
- •ЗАЩИТА ПРОГРАММ
- •Глава 4. Прочие приемы защиты.
- •4.1 Запуск программ в кодах.
- •4.3 Ключевые слова Бейсика в "хэдере".
- •4.4 Мерцающий заголовок.
- •Глава 1. Введение
- •Общие рекомендации.
- •Структура фирменной программы.
- •Небольшая историческая справка.
- •Структура хэдера.
- •Глава 2. Блокировка автозапуска.
- •Введение.
- •2.1 Загрузка Бейсика через блок кодов.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •7. ПРОЦЕДУРЫ ОБРАБОТКИ ПРОГРАММ.
- •7.1 Удаление блока программы.
- •7.2 Обмен токена.
- •7.3 Удаление REM строк
- •7.4 Создание REM строк
- •7.5 Сжатие программы.
- •8. ИНСТРУМЕНТАЛЬНЫЕ ПРОГРАММЫ
- •8.1 Определение размера свободной памяти.
- •8.5 Копирование данных в памяти.
- •ВОЗВРАЩАЯСЬ К НАПЕЧАТАННОМУ
- •КАНАЛЫ И ПОТОКИ
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •ОБРАБОТКА ОШИБОК В БЕЙСИКЕ
- •ПРЕДОТВРАЩЕНИЕ ОСТАНОВКИ БЕЙСИК ПРОГРАММЫ
- •1. Блок кодов "ON ERROR GO TO"
- •2. Программа "BEEPER"
- •FORUM
- •Адвентюрные игры.
- •Heavy on the Magic.
- •Полезные советы.
- •Советы и секреты.
- •Письмо читателя.
- •Проблемы совместимости.
- •Проблемы "ELITE".
- •СОВЕТЫ ЭКСПЕРТОВ
- •ACADEMY (TAU CETI II)
- •Работа с меню.
- •Просмотр/выбор клавиш.
- •Прием нового кадета.
- •Меню работы с лентой.
- •Рапорт о выполнении уровня.
- •Выбор скиммера.
- •Проектирование скиммеров.
- •Выбор миссии.
- •Уровень I.
- •Уровень II.
- •Уровень III.
- •Уровень IV.
- •Уровень V.
- •Полезные советы по сборке скиммеров.
- •Выполнение миссии.
- •Сводка боевых команд
- •SHERLOCK
- •Понедельник, 8:00
- •Вторник.
- •Среда.
- •НАШ КОНКУРС
- •Письмо читателя.
- •Наши предложения.
- •Наши условия:
- •BETA BASIC
- •34. LIST FORMAT число.
- •35. LIST PROC имя процедуры.
- •36. LIST REF.
- •37. LOCAL переменная <,переменная><,переменная>...
- •38. LOOP
- •39. MERGE
- •40. MOVE
- •42. ON ERROR номер строки
- •43. OVER 2.
- •44. PLOT X,Y <;строка>
- •45. POKE адрес, строка
- •46. POP <числовая переменная>
- •47. PROC имя <параметр><,параметр><,параметр>...
- •49. REF метка
- •50. REF имя переменной.
- •52. ROLL код направления <, число><; х, y; ширина, длина >
- •ЗАЩИТА ПРОГРАММ
- •2.2.2 Изменение хэдера для блокировки автозапуска.
- •3.1 Просмотр строк, защищенных управляющими кодами.
- •40 ЛУЧШИХ ПРОЦЕДУР
- •8.5 Составление списка переменных.
- •8.6 Поиск строки.
- •8.7 Поиск и замещение строки.
- •8.8 Поиск подстроки.
- •Формат данных в "Спектруме"
- •Числовая переменная с именем из одной буквы.
- •Числовая переменная с именем более чем из одной буквы.
- •Числовой массив.
- •Переменные цикла.
- •Символьная переменная.
- •Символьный массив.
- •ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- •ЭЛЕМЕНТАРНАЯ ГРАФИКА В МАШИННЫХ КОДАХ
- •Печать чисел.
- •Печать символьных строк.
- •Управляющие символы.
- •Другие приемы управления позицией и цветом печати.
- •Организация экранной памяти.
- •Файл атрибутов.
- •Изменение цвета бордюра.
- •Эмуляция команд БЕЙСИКа из машинного кода.
- •Скроллинг экрана.
- •PAUSE
- •Рисование точек.
- •Рисование прямых линий.
- •Рисование дуги.
- •Рисование окружности.
- •Проверка точки экрана.
- •Проверка атрибутов экрана.
- •Проверка содержимого заданного знакоместа.
- •СЛУЧАЙНАЯ ГРАФИКА
- •СЛУЧАЙНАЯ ГРАФИКА
- •Проблемы скорости работы.
- •Трансляция БЕЙСИКа в машинный код.
- •КРИБЕДЖ
- •КРИБЕДЖ
- •Игра.
- •Стратегия в крибедже.
- •Пример розыгрыша партии.
- •Программа
- •Комментарий
- •THE DARK WHEEL
- •ГЛАВА 1.
- •СПЕКТРУМ В ШКОЛЕ
- •BETA BASIC
- •53. SAVE <строка TO строка;> устройство;> имя
- •54. SCROLL код направления <,число> <;x,y; ширина, длина>
- •55. SORT
- •56. SPLIT (не ключевое слово).
- •57. TRACE номер строки
- •58. UNTIL условие.
- •59. USING, USING$
- •60. VERIFY <строка TO строка;> устройство;> имя
- •61. WHILE условие.
- •62. WINDOW номер окна <,x,y,w,l>
- •РАЗДЕЛ 3. ФУНКЦИИ
- •1. AND (число, число)
- •3. CHAR$ (число)
- •4. COSE (ЧИСЛО)
- •5. DEC (символьная строка)
- •ЗАЩИТА ПРОГРАММ
- •3.2 Работа со встроенными машинными кодами.
- •Глава 4. Изучение блоков в машинных кодах.
- •4.1 Введение.
- •4.2 Адаптация фирменных программ под индивидуальный вкус.
- •4.2.2. Новые возможности программы "RENEGADE".
- •Введение.
- •ГЛАВА 1.
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •"ДЕБЮТ ПРОГРАММЫ"
- •Блок кодов "REM FILL"
- •УНИВЕРСАЛЬНОЕ МЕНЮ
- •Программа "PRIM"
- •Маленькие Хитрости
- •ВЕКТОРНАЯ ГРАФИКА
- •Сокрытие невидимых линий контура
- •Алгоритм.
- •Маленькие хитрости
- •ОШИБКИ ПЗУ
- •1. Ограничение по использованию регистровой пары IY.
- •2. Особенности регистровой пары H'L' (альтернативной).
- •3. Особенности пользовательской функции FN.
- •4. Ошибка деления.
- •6. Ошибка оператора PLOT.
- •7. Ошибка первого экрана в компьютерах 128К.
- •Blinky's
- •СОВЕТЫ ЭКСПЕРТОВ
- •OPERATION HORMUZ
- •TOMAHAWK
- •SKY RANGER
- •TYPHOON
- •THE DARK WHEEL
- •ГЛАВА 2.
- •BETA BASIC
- •6. DPEEK (адрес).
- •7. EOF (номер потока).
- •8. FILLED ().
- •9. HEX$ (число).
- •11. INSTRING (старт, строка 1, строка 2).
- •12. ITEM ()
- •13. LENGTH (n, "имя массива")
- •15. MEMORY$ ()
- •16. MOD (число, число)
- •17. NUMBER (симв. строка)
- •18. OR (число, число)
- •19. RNDM (число)
- •20. SCRN$ (строка, столбец)
- •21. SHIFT$ (число, строка)
- •22. SINE (число)
- •23. STRING$ (число, строка)
- •24. TIME$ ()
- •25. USING$ (строка, число)
- •26. XOR (число, число)
- •ПРИЛОЖЕНИЕ 1
- •ПРИЛОЖЕНИЕ 2.
- •ПРИЛОЖЕНИЕ 3
- •Коды ошибок.
- •ЗАЩИТА ПРОГРАММ
- •1.2 Смещение системной переменной PROG.
- •1.3 Кодирование и декодирование блоков машинных кодов.
- •1.4 Новые POKES.
- •Том 4. Методы защиты программ от копирования.
- •Введение.
- •ОШИБКИ ПЗУ
- •8. Ошибка CLOSE#.
- •9. Ошибка CHR$ 9.
- •10. Ошибка CHR$ 8.
- •11. Ошибка STR$.
- •12. Ошибки кодов управления цветом.
- •13. Ошибка SCREEN$.
- •Ошибки в редакторе
- •14. Ошибка Scroll?.
- •15. Ошибка курсора текущей строки.
- •16 Ошибка ведущего пробела.
- •18 Ошибка проверки синтаксиса.
- •Ошибки калькулятора
- •19. Ошибка MOD_DIV.
- •20. Ошибка E_TO_FP.
- •21. Ошибка INKEY$#0.
- •ПРОФЕССИОНАЛЬНЫЙ ПОДХОД
- •Блок кодов, воспроизводящий звук.
- •Программа "SOUND"
- •Ввод параметров при помощи оператора INPUT.
- •КАК ЭТО ДЕЛАЕТСЯ!
- •RANARAMA
- •Техническое задание.
- •Предварительные исследования.
- •1. Дизайн экрана.
- •2. Раскладка оперативной памяти.
- •3. Упаковка данных.
- •4. Специальные алгоритмы.
- •5. Проверка концепции.
- •Дизайн программы.
- •Машинный код.
- •Звук и музыка.
- •Одноступенчатая модуляция.
- •Пилообразная модуляция
- •Треугольная модуляция
- •Двуступенчатая модуляция
- •Программа.
- •СОВЕТЫ ЭКСПЕРТОВ
- •FLYER FOX
- •COBRA FORCE
- •THUNDER BLADE
- •SANXION
- •AIR WOLF
- •1943 THE BATTLE OF MIDWAY
- •THE DARK WHEEL
- •ГЛАВА 3.
- •ГЛАВА 4
конца буквально за 10 минут. Поэтому мы рекомендуем Вам просто изменить количество выстрелов из огнемета тогда в игру станет играть чуть легче, но не настолько, чтобы быстро потерять к ней интерес.
Для тех, кто решит сохранить данные изменения, рекомендуем записать информацию на магнитофон, подав команду:
SAVE "G.В.CORR." CODE 33475,794
Для тех читателей, которые не имеют ни малейшего представления о машинных кодах Z80 и не желают их изучать, Я предлагаю измененный вариант Бейсик загрузчика, который перед запуском программы в кодах вносит в нее все вышеописанные изменения.
10 BORDER 0: PAPER 0: INK 0:CLEAR 65535
20 LOAD ""CODE
30 POKE 34217,205: POKE 34218,133
40 FOR i=34253 TO 34267
50 READ A: POKE I,A
60 NEXT I
70 DATA 33,236,182,119,35,119,33,92,164,119,195,0,128
80 RANDOMIZE USR 34132
4.2.2. Новые возможности программы "RENEGADE".
Если Вы внимательно изучили содержимое предыдущего раздела и достаточно подробно разобрались с предложенной вашему вниманию программой, то теперь должны достаточно хорошо разбираться в подобного рода вопросах, поскольку программа GREEN BERET имеет достаточно сложный загрузчик. Однако, возможно, что не у всех хватило терпения и желания подробно изучить предложенное выше описание и потому для тех, кто просто пролистал материал предыдущего раздела, мы предлагаем разобраться с более простой программой RENEGADE. (Конечно, слово "простой" не относится к программе, а только к ее загрузчику).
В этой программе, как и в GREEN BERET не требуется много размышлять, но эта игра достаточно популярна. Здесь так же, как и в GREEN BERET количества жизней, предложенных вначале, бывает недостаточно для прохождения программы до конца.
Бейсик загрузчик имеет вид:
10 POKE 23624,71: POKE 23693,71:
CLS: LOAD ""CODE: LOAD "SCREEN$: RANDOMIZE USR 64000
Запуск машиннокодового загрузчика выполняется, как видите, с адреса 64000. Посмотрим, что там содержится.
64000 |
DD21005B |
LD IX,23296 |
64004 |
11009F |
LD DE,40704 |
64007 |
37 |
SCF |
64008 |
3EFF |
LD A,#FF |
64010 |
CD5605 |
CALL 01366 |
64013 |
31FFFF |
LD SP,65535 |
61016 |
C3CB5C |
JP 23755 |
64019 |
32485С |
LD (23624),A |
64022 |
CD6B0D |
CALL 03435 |
64025 |
21003D |
LD HL,15616 |
61028 |
113000 |
LD DE,00048 |
64031 |
00 |
NOP |
64032 |
00 |
NOP |
Если Вы внимательно изучите и эту короткую программу, то достаточно быстро поймете, что в адресах 64000 64010 осуществляется непосредственная загрузка главного блока (как Вам уже вероятно известно, в программе RENEGADE загружаются два блока в машинных кодах). Однако нас сейчас интересует только первый, являющийся
машиннокодовым загрузчиком.
Почти сразу после загрузки главного блока осуществляется безусловный переход по команде: JP 23755.
Чтобы осуществить необходимые изменения, нам необходимо воспользоваться данным переходом. Вместо того, чтобы переходить на адрес 23755, мы перейден на адрес 64031, где разместим программу, осуществляющую необходимые изменения, и, осуществив их, перейдем на адрес 23755.
|
Измененный загрузчик для RENEGADE, набранный в ассемблере "EDITAS 48". |
10 |
ORG 64000 |
20 |
LD IX,23296 |
30 |
LD DE,40704 |
40 |
SCF |
50 |
LD A,255 |
60 |
CALL 1366 |
70 |
LD SP,65535 |
80 |
JP NEW |
90 |
LD (23624),A |
100 |
CALL 03435 |
110 |
LD HL,15616 |
120 |
LD DE,0048 |
130 |
NEW LD HL,41047 |
140 |
LD A,162 |
150 |
LD (HL),A |
160 |
LD HL,30301 |
170 |
LD A,195 |
180 |
LD (HL),A |
190 |
JP 23755 |
200 |
END |
Перед вами дисассемблер измененного загрузчика. Эта версия проверена автором и вполне работоспособна.
ПРИМЕЧАНИЕ.
В"ZX РЕВЮ" N7,8 за 1991г. была дана информация об изменении количества жизней
ивремени в программе RENEGADE. Однако приведенная там БЕЙСИК программа не работает с имеющейся у автора версией программы. Для тех, у кого тоже есть такие проблемы дается другой вариант адаптации. Подчеркнуты те байты, которые нуждаются в изменении.
64000 |
DD 21 00 5В |
]!.[ |
|||
64004 |
11 |
00 |
9F |
37 |
...7 |
64008 |
ЗЕ FF CD 56 |
>.MV |
|||
64012 |
05 31 |
FF FF |
.1.. |
||
64016 |
СЗ 1F FA 32 |
С.z2 |
|||
64020 |
48 5С CD 6B |
Н\МК |
|||
64024 |
0D 21 00 |
3D |
.!.! |
||
64028 |
11 30 00 |
21 |
.0.! |
||
64032 |
57 А0 3Е B6 |
W >6 |
|||
64036 |
77 21 5D |
76 |
w!]v |
||
64040 |
3Е C3 77 C3 |
>CvC |
|||
54044 |
СВ 5С 00 00 |
К\.. |
|||
64046 |
00 00 00 |
00 .... |
|||
64052 |
00 00 00 |
00 .... |
|||
64056 |
00 00 00 |
00 .... |
|||
64060 |
00 00 00 |
00 .... |
|||
64064 |
00 00 00 |
00 .... |
|||
64068 |
00 00 00 |
00 .... |
|||
64072 |
00 00 00 |
00 .... |
|||
64076 |
00 00 00 |
00 .... |
Новый же БЕЙСИК загрузчик, способный внести эти изменения выглядит так:
RENEGADE NEW LOADER LLIST
10 POKE 23624,71: POKE 23693,71:CLS: LOAD ""CODE: LOAD ""SCREEN$ 20 POKE 64017,31: POKE 64018,250
30 FOR I = 64031 TO 64045
40 READ A: POKE I, A
50 NEXT I
60 DATA 33,87,160,62,182,119,33,93,118,62,195,119,195,203,92
100 RANDOMIZE USR 64000
Том 3. Методы известных взломщиков компьютерных программ к ZX SPECTRUM.
Введение.
Эта книга написана для тех, кто внимательно изучил информацию первого и второго тома и теперь желают расширить свои знания путем исследования методов известных хаккеров.
Начало взлома компьютерных программ к "ZX SPECTRUM" относится приблизительно к 1986 1987 г.г. По всей видимости, это связано с тем, что фирмы изготовители программного обеспечения с этого периода начали интенсивно защищать свои продукты от несанкционированного просмотра. Это, в свою очередь, было связано с существенными прорывами в технике программирования для даного компьютера и, кроме того, к такому поведению фирмы подтолкнуло широкое распространение самого компьютера.
Комментарий "ИНФОРКОМА"
Конечно же техника защиты программ, как и техника их взлома начали разрабатываться раньше. Можно сказать, что только в 1982 году выпускались программы без защиты, но и компьютеров в то время было еще очень немного.
В 1983 г. техника программирования была еще недостаточно развита для серьезных защит и, как правило, программы защищались только на уровне БЕЙСИК загрузчика (совмещение цвета, внедрение управляющих кодов, искажение содержимого некоторых системных переменных, защита от MERGE).
1984 год стал годом разгула средств защиты. Появились такие варварские изобретения, как "стукалка", "спидлок", "лензлок". Вся мерзость их состояла в том, что не то, что скопировать программу было невозможно, ее и загрузить то было трудно (в случае "лензлока" с загрузкой не было проблем, но были проблемы с запуском). Массовые жалобы покупателей и отказ от приобретения программ у фирм, запятнавших себя такими приемами стали коммерческой проблемой уже в 1985 году, когда убытки от средств защиты превысили убытки от пиратства.
Автор статьи относит начало появлений средств защиты к 1986 году и мы с ним согласны, если рассматривать квалифицированные средства защиты, построенные на изощренной логике программирования, а не на искажении параметров загрузки, что очень плохо отражается на самой загрузке.
Разумеется, техника взлома, техника защиты и техника программирования совершенствовались одновременно. В частности, если сравнить по графике игры 1986 года и 1989, то без сомнения в большинстве случаев Вы отдадите предпочтение последним. То же самое можно сказать и об уровне защищенности компьютерных программ.
Однако то же самое мы можем сказать и о технике взлома. В самом деле, фирмы совершенствуют свою защиту и, чтобы вскрыть ту или иную программу, приходится прикладывать максимум изобретательности.
Среди "хаккеров" наибольшую известность приобрел BILL GILBERT. Можно с уверенностью сказать, что программы взломанные им есть у каждого обладателя