ZX Review #7-8-9-10
08 ноября 1997

Этюды - Комплект защит загрузчиков.

(c) DeathSOFT, пос.Лебяжье

   Прим. ред.: Наш корреспондент, не  рас-
крывший своего  имени, предлагает  на  Ваш
суд комплект  всяческих  "защит  загрузчи-
ков". Эти процедуры достаточно  простые  и
не требуют отдельных комментариев, но  за-
то они очень показательны для  начинающего
программиста или  хаккера, т.к.  процедуры
этого класса должны быть компактны, быстры
и ХОРОШО продуманы.
140.
          LD      HL,START
          LD      BC,LENGTH
LOOP      LD      A,(HL)
          XOR     B
          LD      (HL),A
          INC     HL
          DEC     BC
          LD      A,B
          OR      C
          JR      NZ,LOOP

────────────────────────────────

          LD      HL,START
          LD      DE,LENGTH
LOOP      LD      A,(HL)
          CPL
          LD      (HL),A
          INC     HL
          DEC     DE
          LD      A,E
          OR      D
          JR      NZ,LOOP

────────────────────────────────

          LD      HL,START
          LD      BC,LENGTH
          LD      HL,START
          LD      BC,LENGTH
          LD      A,#33
          LD      R,A
LOOP      LD      A,R
          XOR     (HL)
          LD      (HL),A
          INC     HL
          DEC     BC
          LD      A,B
          OR      C
          JR      NZ,LOOP

────────────────────────────────

          LD      HL,START
          LD      DE,START1
          LD      BC,LENGTH
          LD      A,#33
          LD      R,A
LOOP      LD      A,(HL)
          XOR     D
          XOR     H
          XOR     E
          LD      C,A
          LD      A,R
          XOR     C
          LD      (HL),A
          LD      (DE),A
          INC     HL       ;\
          INC     DE       ; LDI
          DEC     BC       ;/
          LD      A,B
          OR      C
          JR      NZ,LOOP

────────────────────────────────

          LD      SP,START
          LD      DE,LENGTH
          DI
          XOR     A
          DEC     A
          DAA
          LD      R,A
          LD      HL,START1
          LD      DE,START1+1
          LD      BC,LENGTH1
          LD      (HL),L
          LDIR
LOOP      LD      A,R
          POP     HL
          XOR     L
          LD      L,A
          PUSH    HL
          INC     SP
          DEC     DE
          LD      A,D
          OR      E
          JR      NZ,LOOP

────────────────────────────────

          LD      IX,START
          LD      DE,LENGTH
LOOP      LD      A,(IX+0)
          CPL
          XOR     E
          XOR     D
          LD      (IX+0),A
          INC     IX
          DEC     DE
          LD      A,D
          OR      E
          JR      NZ,LOOP

────────────────────────────────

          LD      HL,START
          LD      BC,LENGTH
LOOP      LD      A,(HL)
          CPL
          LD      (HL),A
          INC     HL
          DJNZ    LOOP

────────────────────────────────

          XOR     A
          LD      HL,START
          LD      BC,LENGTH
          LD      R,A
LOOP      POP     HL
          LD      A,R
          XOR     (HL)
          XOR     C
          XOR     B
          LD      (HL),A
          INC     HL
          DEC     BC
          PUSH    HL
          LD      A,B
          OR      C
          JR      NZ,LOOP
2
   КОРР.: Дальше я предложу  бо-
лее сложные код. процедуры (КП).
А процедуры, содержащие вставку:
140.
          LD      HL,START
          LD      DE,START1
          LD      BC,LENGTH
          LD      (HL),L
          LDIR
2
в  мониторе-отладчике  не  могут
быть раскручены.  Т.к., если  КП
подставить под  адрес - 23925, а
в регистры занести такие  значе-
ния:   HL,24100;  DE,24101;  BC,
41100, то после выполнения КП  с
адреса 24100 и до 65200 вся  па-
мять будет забита байтом из  ре-
гистра L, т.е. автоматически бу-
дет испорчен отладчик.

   Прим. ред.: Для начинающих: то что  ав-
тор называет КП, является не чем иным, как
обыкновенной и приятной на слух "ксоркой".
А что касается нераскрытия таких защит, то
давно уже  существуют  средства, позволяю-
щие бороться с такими мощными алгоритмами,
как забитие памяти, использование регистра
R и другими методами  защиты.  Но  это  мы
увлеклись...
140.
          DI
          LD      HL,START
          LD      BC,LENGTH
          IM      2
          LD      A,R
          LD      IY,START1
          LD      IX,START1+1
          LD      DE,LENGTH1
LOOP      LD      (IY+0),E
          INC     IX
          INC     IY
          DEC     DE
          LD      A,D
          OR      E
          JR      NZ,LOOP
LOOP1     POP     HL
          LD      R,A
          XOR     (HL)
          XOR     C
          XOR     B
          LD      (HL),A
          CPL
          PUSH    HL
          LD      A,B
          OR      C
          JR      NZ,LOOP1

────────────────────────────────

          LD      IX,START
          LD      A,51
          LD      R,A
          LD      HL,START1
          LD      DE,START1+1
          LD      BC,LENGTH
LOOP      POP     HL
          LD      A,R
          XOR     (HL)
          XOR     E
          XOR     D
          LD      (IX+0),A
          INC     IX
          DEC     BC
          PUSH    HL
          LD      A,B
          OR      C
          JR      NZ,LOOP

────────────────────────────────

          DI
          LD      A,78
          LD      R,A
          XOR     A
          LD      IXh,NN  ;START
          LD      IXl,NN  ;
          PUSH    IX
          POP     HL
          LD      IXh,64
          LD      IXl,255
          LD      A,IXl
          CPL
          LD      IXl,A
          PUSH    IX
          POP     DE
          LD      BC,LENGTH
          LD      IXh,255
          LD      IXl,253
          CALL    13251
          LD      A,0
          LD      L,A
          SET     5,A
          LD      H,A
          RES     2,H
          RES     5,H
          SET     6,H
          LD      DE,LENGTH
          LD      BC,START
LOOP      LD      A,R
          XOR     (HL)
          CPL
          XOR     H
          XOR     L
          XOR     B
          XOR     C
          XOR     D
          XOR     E
          XOR     IXh
          XOR     IXl
          XOR     IYl
          XOR     IYh
          PUSH    HL
          POP     IX
          LD      (IX+0),A
          LD      (BC),A
          INC     BC
          INC     HL
          DEC     DE
          LD      A,D
          OR      E
          JR      NZ,LOOP

────────────────────────────────

          LD      HL,START
          LD      BC,LENGTH
          DI
          LD      A,51
          LD      I,A
LOOP      LD      R,A
          LD      A,I
          LD      A,R
          XOR     (HL)
          CPL
          XOR     B
          XOR     H
          XOR     L
          XOR     C
          LD      (HL),A
          CPI
          LD      A,B
          OR      C
          JR      NZ,LOOP
2
          *   *   *




Другие статьи номера:

TR-DOS для начинающих - Окончание.

Компьютерная новелла - Prince of Persia.

Компьютерная новелла - Лазерная бригада (по игре Laser Squad).

Перекресток драконов - Игра Rapscallion.

Перекресток драконов - Игра The Runes of Zendos.

Перекресток драконов - Игра The Saga.

Перекресток драконов - Игра Witch's Cauldron.

Перекресток драконов - Создаём Адвентюру. Обзор редакторов.

Перекресток драконов - Создаём словарь к Адвентюрной игре.

Программы, которые мы выбираем - Возможные последствия использования недокументированных команд.

Программы, которые мы выбираем - О замеченных шероховатостях в работе некоторых программ и пожелания к следующим версиям.

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

Программы, которые мы выбираем - Несколько предложений по усовершенствованию ассемблера.

Программы, которые мы выбираем - Предложения по доработке ZX Word v2.5.

Программы, которые мы выбираем - Программа "Эмулятор Спектрума" v1.2.

Программы, которые мы выбираем - Что хотелось бы иметь в идеальном ассемблере.

Ретро - 40 лучших процедур: Копирование данных в памяти.

Ретро - 40 лучших процедур: Обмен токена.

Ретро - 40 лучших процедур: Определение адреса БЕЙСИК-строки.

Ретро - 40 лучших процедур: Определение длины БЕЙСИК-программы.

Ретро - 40 лучших процедур: Определение размера свободной памяти.

Ретро - 40 лучших процедур: Поиск и замещение строки.

Ретро - 40 лучших процедур: Поиск подстроки.

Ретро - 40 лучших процедур: Поиск строки.

Ретро - 40 лучших процедур: Составление списка переменных.

Ретро - 40 лучших процедур: увеличение и копирование экрана.

Ретро - 40 лучших процедур: Удаление REM-строк.

Ретро - 40 лучших процедур: Удаление блока программы.

Советы экспертов - Игра Fredloader.

Советы экспертов - Игра Robin of Sherwood: The Touchstones of Rhianon.

Советы экспертов - Игра Scorpions: Die Machines.

Советы экспертов - Игра Terropods.

Страничка iS-DOS - Описание рестартов системы IS DOS.

Форум - Алгоритм распознавания символов.

Форум - Время выполнения недокументированных команд процессора Z80.

Форум - Концепция экрана высокого цветового разрешения.

Форум - Несколько Pokes к играм. Программа Hacman96.

Форум - По поводу новых DOS и BIOS для Спектрума.

Форум - Программа Multicolor на любой модели компьютера. Использование 2-го экрана для Multicolor'а. Демонстрация текста. Электронные журналы.

Форум - Проект ZX Config.

Форум - Усовершенствование Art Studio. Идеи относительно компрессии файлов.

Форум - Эмулятор ZX Spectrum на IBM. По поводу шестнадцатеричной системы счисления. Программа ZX-Stars. Странности в Elita

Форум - Эффекты на бордюре и Multicolor.

Читатель-читателю - ZX Spectrum 128 - новые возможности, новые проблемы.

Читатель-читателю - Группа 'Light'. Спектрум и экспертная система.

Читатель-читателю - Драйвер принтера для Scorpion'а.

Читатель-читателю - Печать чисел в различных системах счисления.

Читатель-читателю - Программирование аркадной игры со скроллингом экрана.

Читатель-читателю - Процедура печати меток ассемблера XAS для монитора-отладчика STS 4.3.

Этюды - Атрибутная бегущая строка. "Гасилка" экрана. Упрощенный вариант процедуры "Занавес". Процедура гащения картинки. Процедура проявления картинки по точкам.

Этюды - Графический эффект "цветные полосы".

Этюды - Драйвер экрана для печати по 64 символа в строке.

Этюды - Комплект защит загрузчиков.

Этюды - Обращение к диску в режиме IM 2. Работа с диском нестандартного формата.

Этюды - Печать символа, увеличенного в 8 раз. Программа "наливания" экрана. Процедура гашения экрана по точкам. Очистка экрана как в Terminator'е. Поиск последовательности символов в памяти. Система перекодировки символьного набора.

Этюды - Программа - каталогизатор дисков.

Этюды - Программа вывода значений амплитуды каналов муз. сопроцессора на бордюр.

Этюды - Программа вывода картинки.

Этюды - Программа зажигания спрайта.

Этюды - Программа очистки заданного окна экрана.

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

Этюды - Процедура печати чисел.

Этюды - Процедура прорисовки символа с помощью атрибутов.

Этюды - Процедура проявления картинки. Fade-OUT эффект (картинка уходит за края экрана). Графический эффект "Фонтан". Fade-OUT эффект, имитирующий выключение телевизора. Процедура "зажигания" картинки. Программа плавной прорисовки картинки.

Этюды - Процедура рисования линии.

Этюды - Процедура составления оптимальной таблицы символов.

Этюды - Скроллинг строк текста в заданном окне. Атрибутный скроллер. Диагональный скроллинг.

Этюды - Спрайтовый скроллер. Процедуры проявления экрана.

Этюды - Укороченная процедура индикации амплитуды каналов муз. сопроцессора. Способ вычитания константы из регистровой пары HL.

Этюды - Формула для вычисления дня недели.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Опечатка - Vicomm-совместимый модем от FLASH'a ??? Краткое пояснение возможности скоростей,больших 3200 бод на Vicomm-модеме.
Въедем - Описание-проходилка игр: Dizzy 2: Treasure Island, The Fantastic Adventure of Red Hawk.
Система - Обзор системных программ: копировщик Master Fast Track Copyer v 2. 2

В этот день...   18 июня