Adventurer #06
28 февраля 1997

Обмен опытом - Методы защиты программного кода.

<b>Обмен опытом</b> - Методы защиты программного кода.
┌─────────────═══════════════───────────┐
╠─── Методы защиты программного кода ───╣
└─────────────═══════════════───────────┘

            Обзорная статья

     На  текущий  момент  сушествуют нес-
колько методов защиты  программного кода.
Перечислю их.

1.Защита инвертированием по маске.
  ( В простонародье - "КСОРКА")

 Широко известный  и  применяемый  метод.
 Часто используется с применением в каче-
 стве  маски регистра R и отличается ред-
 ким  однообразием,  хотя изредка попада-
 ются настоящие  программные шедевры. Ма-
 лоэффективен,  хотя  часто требуется не-
 мало времени для взлома.   Яркий  пример
 использования : копировщик  L-Copy ( ав-
 тор: Лаптев ).

2.Защита при помощи разных "извратов".

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

3.Метод с использованием ПИ-кода или раз-
  новидностей шитого кода.

 ПИ-код - ассемблер  для  абстрактной ма-
 шины, некая промежуточная  стадия  между
 машинным кодом и языком высокого уровня.
 Шитый код - специфический  вариант того-
 же ПИ-кода.

 Очень крутой метод защиты, в  общем, по-
 хожий на метод 2, но исключительно редко
 применяющийся на ПК класса Spectrum. Не-
 достаток: "неслабый" размер кода и более
 низкое, чем у "чистого" кода быстродейс-
 твие. Эффективность метода очень высокая
 и взлом по зубам только очень искушенным
 программистам.  Пример: любая программа,
 откомпилированная на Паскале, язык Форт.
 На Spectrum'е  такой код может генериро-
 вать компилятор BLAST (остальные генери-
 руют "извраты", см.выше).

4.Метод с использованием  криптографичес-
  ких алгоритмов и паролей.

 Широко  используемый  на  мощных  ПК и в
 разных шпионских "конторах" метод. Осно-
 ван  на самых разнообразных математичес-
 ких  алгоритмах,  цель  которых -  путем
 жутких расчетов  получить  из  исходного
 информационного блока и ключевого масси-
 ва  (пароля)  некий файл,  раскодировать
 который может только тот, кто имеет этот

 пароль. Взломать такой файл можно только
 после  изучения  килограмм сорока специ-
 альной математической литературы,  после
 чего  вы  смело  можете  предлагать свою
 кандидатуру на должность директора  ЦРУ.
 На Spectrum'е не эффективен, т.к. пароль
 никому, кроме  себя  показывать  нельзя,
 иначе через пару  дней  его  узнает  вся
 страна.

5.Метод, основанный на использовании IM2.

 В отличие  от  вышеперечисленных  мне не
 попадался,  так что обьясняю умозритель-
 но.  Основан  на "увязке" основной прог-
 раммы и ISR (от англ.- "подпрограмма об-
 работки прерываний" -  Interrupt Service
 Routine)  с  целью организовать контроль
 (например,  считать  контрольную  сумму)
 основной  программы  на  предмет посяга-
 тельств извне.  Тут  открывается широкое
 поле для экспериментов.  Можно, к приме-
 ру,  организовать  передачу данных через
 ISR от одного массива данных  к  другому

 или  использовать  ISR для динамического
 кодирования  неиспользуемых  на  текущий
 момент  подпрограмм и т.д. Сложность ме-
 тода в необходимости глубокой проработки
 и "увязки" алгоритмов  ISR  и программы,
 дабы избежать багов и задержек  в работе
 программы из-за апериодичной работы ISR,
 связанной со сложностью определения вре-
 мени от DI до EI.  Очень перспективный и
 многообещающий метод.
     Думается, что все остальные варианты
защиты  программного кода являются не бо-
лее,  чем  частными случаями вышеперечис-
ленных или  их  комбинациями. Использова-
ние  недокументированных  команд  Z80  не
включено в статью по причине  тривиальной
- в последнее время они фактически  хоро-
шо всем известны.
     Буду рад любой информации по методам
защиты информации и сотрудничеству в этой
сфере.
       Шпинев Роман Евгеньевич (SHRSOFT).

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



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

Презентация - Новелла вступление к игре Return Home 4.

Презентация - Презентация новых игр: Новая игра от K.KAV'a - "Return to Home 5".

Система - Oбзор системных новинок: FREE FORMAT v8.3, ALASM v2.8, OMEGA COMMANDER v1.5, PERFECT COMMANDER v1.52, F-COMMANDER v4.02, CHEMNEBASE v0.6, SPRITELAND v1.9, MAXSOFT SCREEN PACKERv1.0, ANIMICROPROTECTOR v1.0), MICRO EDITOR,DISK LEVEL, MAY BE MY BANK v5.1,AFRODITA v3.0, FLOOPY FORMAT UTILITY v1.0, DIGITAL STUDIO PLAYER v1.0, PRO TRACKER PLAYERv1.10, UNRECOGNIZED FORMATING OBJECT v1.1, ZX-WINWORD v1.0

Обзор - Обзор новых игровых программ : KOMANDO-2, PEDRO NA OSTROVE PIRATOV, DIRT TRACK RACER, DOUBLE DRAGON-2, THE CYCLES, STUNT MAN SEYMOUR, CHOY LEE FUT KUNG FU WARRIOR, ARKARUM, KING VALLEY, MURK 3320, THE MYSTER of ARKHAM MAVOR, СКАЗЫ ДРЕВНЕЙ РУСИ: ВИТЯЗЬ СВЯТОГОР И КОЛДУН КАРАЧУН, MAGICIAN LAND, RALLY CROSS, MOVING TARGET, KLADEMINER , LOST CAVES and the TOMB of DOOM, WIZARD WILLY.

Интерфейс - Cheat к игре Heavy Metal Mover. Мнение об ассемблере (какой лучше ?). Вопросы по адвентюрным играм: Last Raider, Витязь Святогор и колдун Карачун, Средневековая история.

Интерфес - разбор почты. Письма от читателей: Колотушкин Сергей, Дмитрий Шадринов, Берников Евгений.

Интерфес - мошенничество на Спектруме - поддельные игры от Overfile.

Интерфейс - Новости : KAV разрабатывает аркадную адвентюру "Ежики мутанты", Nicodim работает над игрой "Legend of Kyrandia", Microfucker. Горячая десятка игр и пятерка электронных журналов из города Ярославля.

Презентация - Презентация новых программ: Road Fighter demo, Font Editor.

Раскрутка - Описание адвентюрных и стратегических игр: Appolo и Чужой, Lord of Chaos, War Game 1, Страна Мифов, Sorcerer Lord.

Оттяг - Терминология юзера или современный разговорный язык.

Оттяг - Маразминки : 10 причин,почему вымерли динозавры. 10 соперников для черепашек-нинзя. 10 вещей,которые не смог бы сделать В.Ван Гог. 10 вещей,которые можно крикнуть , подкравшись сзади к своему дедуле. 10 вещей,которые было бы глуппо говорить тому, кто пришел покупать твой дом. 10 вещей,которые можно подарить глухому родственнику.

Оттяг - крутой ли ты демомейкер?

Оттяг - Что не стоит говорить или делать, если ты нажрался водки.

Оттяг - тест: Есть ли у тебя друзья ?

Оттяг - Китайские пословицы.

Оттяг - "Русские народные чернушки"(сканированные картинки от SERGA)

Обмен опытом - Как сделать дисковую версию программы ?..

Обмен опытом - Что мы выбираем: преимущества и недостатки PC и Амиги.

Обмен опытом - о вирусе в игре Last Battle. Как написать свой вирус.

Обмен опытом - Методы защиты программного кода.

Юбилей - Журналу 1 год (6 номер - юбилейный номер журнала).

Юбилей - Наш юбилей - 15 лет SPECCY и 57 лет Синклеру!

Новелла - Новелла "Черный берет" по игре "Sabouter".

Конкурс - Конкурс GFX - первые работы ...

Реклама - Реклама и объявления.


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

Похожие статьи:
Форум - С.Астров. Генератор псевдослучайных чисел.
Печатается с продолж. - ДООМЕР (окончание).
Железо - три схемы согласования модема со Spectrum'ом.
Юмор - анекдоты.
Мнение - Мысли о системном софте на Спектруме.

В этот день...   5 октября