Adventurer #06: Обмен опытом: Методы защиты программного кода

┌─────────────═══════════════───────────┐  
╠─── Методы защиты программного кода ───╣
└─────────────═══════════════───────────┘

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

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

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).

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

Оглавление издания: Adventurer #06

  • Презентация
    Это новелла-вступление к игре Return to Home 4, рассказывающая о космических сражениях и пилоте Райфусе, преодолевающем трудности в военном контексте.
  • Презентация
    Статья представляет новую игру K.KAV software 'DEATH WORLDS: TORISTAG INVADERS RETURN TO HOME 5', стратегию в реальном времени, продолжение 'RTHЧ'. Игроки будут сражаться против конкурентов на ресурсных планетах, управляя технологиями и военными силами. Примерный срок выхода игры - конец весны - лето 1997 года.
  • Обновления программного обеспечения системы для ZX Spectrum - Котов А.В.
    Статья рассматривает различные обновления и утилиты программного обеспечения для ZX Spectrum, подчеркивая их функции, удобство и производительность. Она предоставляет информацию о инструментах программирования, управлении дисками и приложениях баз данных. Тон статьи сочетает критику и личный опыт, чтобы информировать читателей о последних разработках в программном обеспечении Spectrum.
  • Обзор программного обеспечения ZX Spectrum
    Статья представляет собой обзор нового программного обеспечения для ZX Spectrum, описывая различные игры, их особенности и рекомендации для игроков.
  • Интерфейс
    Обсуждение проблем интерфейса ZX Spectrum и недовольств пользователей несовместимостью и современными улучшениями. Автор критикует давление на пользователей переделывать свои машины для нестандартных функций и выражает недовольство текущими тенденциями. Размышления о будущем ZX Spectrum и необходимости более активного участия сообщества.
  • Интерфес
    Статья обсуждает отзывы читателей о играх и инструментах программирования для ZX Spectrum. В ней представлены коды для игры, мнения о ассемблерах и предпочтения пользователей в области вычислений. Также рассматриваются запросы читателей о играх и программном обеспечении.
  • Интерфес
    Статья обсуждает проблемы вокруг OVER FILE GROUP, разработчика игр, известного продажей по почте, и влияние на доверие пользователей к распространению программного обеспечения. Также поднимается вопрос о переходе журнала на 128K ONLY с призывом к читателям высказать свое мнение. Публикация акцентирует важность поддержки пользователей для сохранения доверенной игровой среды.
  • Интерфейс
    Статья обсуждает последние новости в сообществе ZX Spectrum, включая обновления разработки игр, личные новости о разработчиках и местные события в Рыбинске и Ярославле.
  • Презентация
    Статья представляет новые релизы программного обеспечения от SURDAKAR GROUP, включая демоверсию ROAD FIGHTER и обновления FONT EDITOR и RAY DISK MONITOR.
  • Раскрутка игр
    Статья представляет собой подробный анализ адвентюр 'APOLLO' и 'ЧУЖОЙ', оценивая их игровой процесс, трудности и недостатки в дизайне.
  • Оттяг
    Обсуждение компьютерного сленга и его влияния на современный язык с акцентом на юмористические взаимодействия между пользователями.
  • Оттяг
    Статья представляет собой юмористическую коллекцию абсурдных списков, включая причины вымирания динозавров, альтернативные имена Пятницы Робинзона Крузо и другие.
  • Оттяг
    Статья представляет тест для начинающих демомейкеров, оценивающий их навыки и вовлеченность в создание дем на ZX Spectrum. Оцениваются их подходы к музыке, графике, эффектам и общая вовлеченность в демосцену. Результаты определяют их статус от новичка до эксперта в сообществе демосцены.
  • Что Не Стоит Говорить или Делать, Если Ты Нажрался
    Статья содержит юмористические советы о том, что не стоит говорить или делать в состоянии алкогольного опьянения, основанные на личных анекдотах. Подчеркиваются последствия неправильных решений и предлагаются предостережения. Контент легкий и отражает типичные пьянские поступки и их последствия.
  • Тест о дружбе
    Статья представляет собой юмористический тест о дружбе, оценивающий, как друзья реагируют в различных социальных ситуациях, завершаясь системой баллов для оценки глубины дружбы.
  • Оттяг
    Статья представляет собой сборник китайских пословиц с юмористическим подтекстом, отражающих различные аспекты жизни и отношений. Она сочетает в себе элементы сатиры и легкого фольклора, используя ироничные наблюдения о человеческом поведении. Текст включает в себя аллюзии на сексуальность, настольные игры и религиозные вопросы.
  • Оттяг
    Статья представляет собой пародийное евангелие, в котором события жизни Иисуса Христа изображаются в неформальном и юмористическом ключе.
  • Обмен опытом
    Статья представляет собой подробное руководство по созданию полной дисковой версии программы для ZX Spectrum, включая примеры кода и практические советы.
  • Обмен опытом
    Статья представляет собой сравнительный анализ платформ PC и Amiga, выделяя их преимущества и недостатки на основе личного опыта.
  • Обмен опытом
    Статья обсуждает существование и поведение компьютерных вирусов на ZX Spectrum, в частности, вируса, заражающего BASIC-файлы, известного как 'Пьяный джинн', впервые замеченного в игре Last Battle.
  • Методы защиты программного кода
    Статья обсуждает различные методы защиты программного кода, описывая такие техники, как инвертирование по маске, запутывание, ПИ-код, криптографические алгоритмы и использование ISR. Каждый метод оценивается по эффективности и применению, особенно в среде ZX Spectrum. Автор приглашает к сотрудничеству и обмену информацией по методам защиты информации.
  • Юбилей
    Статья посвящена юбилейному шестому номеру 'ADVENTURER', отмечающему год с момента основания группы AURYN. В ней рассматривается прошедший год для сообщества Speccy, включая появление новых программ и первую тусовку демомейкеров в СНГ. Автор выражает надежду на будущее Speccy и призывает читателей поддерживать платформу.
  • Юбилей
    Статья посвящена 15-летнему юбилею Спектрума, отражая его вечное наследие и недавние достижения в аппаратном и программном обеспечении.
  • Новелла
    Статья повествует о новелле, в центре которой - тайная миссия программиста Джеральда О'Брайена, нанятого наркобароном Шведом для взлома компьютера его соперника, что приводит к захватывающей серии событий, связанных с шпионажем и насилием.
  • Конкурс
    Статья обсуждает конкурс, связанный с ZX Spectrum, демонстрируя работы участников и их креативность.
  • Реклама
    Статья представляет собой раздел рекламы в Adventurer #06, приглашая хакеров, программистов, художников и музыкантов к сотрудничеству в сообществе ZX Spectrum. В статье изложены возможности сотрудничества, требования к подаваемым программам и контактная информация для рекламы и распространения игр. Также статья рекламирует различные программы и услуги для ZX Spectrum, доступные в различных городах.