|
ArcaOS 5.0 Русская версия
Пакет русификации ArcaOS 5.0 OS/2 давно доступен.
Поддерживается любая версия: 5.0, 5.0.1, 5.0.2.
eCo Software может выпустить и другие пакеты
(Немецкий, Голландский, Бразильский Португальский, Испанский, Шведский и т.д.)
|
Подготовка Shareware-программы: защита программы |
TITLE: Подготовка Shareware-программы: защита программы
DATE: 2011-05-17 19:36:33
AUTHOR: eCo Software
В этой статье мы обсуждаем как защитить программу от взлома?
Полностью защитить программу невозможно.
Любой подонок, даже пьяный, может найти проверки с помощью отладчика.
1. Способы защиты
Какие способы защиты программ существуют?
Проверка рег.ключа
(текстовый файл или бинарная форма)
|
- + Такой метод используется чаще всего
- + Удобно передать ключ по e-mail, полностью электронная доставка
|
Проверка через интернет |
- - Подходит только для приложений, работающих с интернет.
Не подойдет для сервисных дисковых утилит и т.п.
|
Проверка USB ключа |
- Для защиты дорогих программных продуктов.
Если программа стоит 500$ - 1000$, то имеет смысл защитить ключом, который
стоит 30$.. 50 $
|
Какой метод защиты выбрать?
[ДОБАВИТЬ]
1.3. Проверка USB ключа
(Тезисы от Joseph Shrago)
К вопросу о защите программного обеспечения аппаратными средствами.
Первое, что необходимо заметить - любую защиту можно вскрыть. Вопрос стоимости.
Как обошли защиту 1С с ключом HASP все знают.
Существенно труднее обойти защиту, предлагаемую Senselock,
которые позволяют зашить часть кода в ключ и исполнять его там-же.
Беда этой защиты в том, что не всегда можно придумать какой код можно
перенести в ключ. Не в каждой задаче есть необходимость в хитрых никому
не известных преобразованиях, а некоторые задачи требуют другой скорости
счета, нежели способен такой ключ защиты.
В виду вышеизложенного защита программного обеспечения от копирования по
прежнему основана на решении трех задач:
- привязка программы к аппаратному ключу защиты
- защита самого ключа от копирования
- защита кода защиты от отладчика
Сам вопрос критичен только в рамках использования OS/2 - eCS, поскольку
именно для этой системы драйвера HASP есть только для LPT порта, который
постепенно уходит в небытие.
Встает вопрос - чем заменить, причем своими силами.
Предлагаю следующий подход к решению этой задачи, повторюсь, не 100%-ому
по определению.
Итак, поэтапно:
- привязка программы к аппаратному ключу защиты
Каждая флешка имеет номер производителя, продукта, релиза и серийный номер, которые предоставляют уникальные характеристики устройства.
Драйвер USBECD облегчает получение этой информации с помощью стандартного API ввода-вывода, но вовсе не обязателен.
Таким образом можно привязать программу к конкретному устройству.
- защита самого ключа от копирования
Естественно, при описанной выше привязке по дескриптору флешки, флешка защищена от копирования
- защита кода защиты от отладчика
Два первых пункта примитивны и примитивно обходятся. Необходимо усложнить ситуацию.
В этом нам поспособствуют средства кодирования информации.
Зашифруем необходимую программе информацию ключом основанном на дескрипторе
флешки и запишем ее на эту флешку. Получим жесткую привязку данных, программы
и флешки. Уже стало сложнее. Теперь надо вывести использование защиты из под
отладчика или максимально затруднить его применение - например, скрытием кода
декодирования данных.
Перенесем его в другой процесс, который как-нибудь будет запускаться
отдельно от защищаемой программы. Желательно незаметно. Например, в виде
объекта WPS или еще как-то. Обмен с таким процессом надо вести через
расшареную именованную память, имя которой вычисляется по дескриптору
флешки.
Этот обмен можно нагрузить следующими функциями:
- постоянный контроль наличия флешки
- декодирование зашифрованных на флешке данных
- обмен этими данными с защищаемой программой
- контроль динамики процесса обмена для воспрепятствия отладке кода.
Чтобы обойти такую защиту необходимо будет найти и взять под отладчик
процесс, который создает кусок именованной памяти, а это не просто,
поскольку его код не содержит этого имени. Брать под отладку весь WPS,
в случае использования его для запуска подобного процесса, затруднительно.
Интересно было бы рассмотреть возможность запуска задачи зашифрованной на
флешке, причем прямо из памяти, куда ее скопировали и расшифровали,
а может быть, и в зашифрованном виде.
Ну и, естественно, контроль использования аппарата защиты должен вестись несколькими нитками, которые сами используют проверку наличия защиты, но и контролируют работу других таких ниток, не давая возможности их последовательного отключения.
2. Запасные колёса
На случай, если программа взломана, разработчик может активировать следующий
уровень защиты, выпустить обновление своей программы, которое опять
отсекает подделанные ключи.
[ДОБАВИТЬ]
3. Разные варианты защиты программы
Формат рег.ключа |
Какой формат выбрать?
- может быть в текстовом виде
(легко отправлять по email, не будет поврежден)
- может быть в бинарном виде
(усложняет взлом)
|
Способ активация программы |
Несколько вариантов активации:
- Пользователь кладет ключ в каталог программы или другой определенный каталог.
При следующем старте программа работает без ограничений.
- Пользователь вызывает функцию активации, вводит/загружает ключ,
активатор снимает shareware-ограничения
(снимает ограничения; прячет ключ в определенное место)
|
Full версия не публикуется |
Demo версия доступна всем, full версия - только покупателям.
Пример: PMView, .. - full версия доступна только зарег.юзерам
- + взломщику надо сначала раздобыть full версию,
- - честному пользователю приходится ставить программу второй раз
|
Привязка к компьютеру |
Привязаться к компьютеру покупателя.
Программа определяет модель мат.платы, винчестера, .. и
формирует дамп с этой информацией.
Пользователь пересылает этот блок информации разработчику.
Разработчик выдает рег.ключ, вычисленный их этого дампа.
- + пользователь купит столько копий программы,
сколько ему на самом деле нужно
(а не 1 копию на 10 компьютеров)
- - усложняет процедуру регистрации
|
| |
Другие советы
- Дополнительно имеет смысл шифровать тексты, коды
различными методами шифрования, чтобы усложнить взлом.
Дополнительная информация:
- Авторы: eCo Software, Joseph Shrago
Другие статьи / More articles:
Комментарии: Прокомментируйте эту статью (напоминаем, автор работал над текстом несколько недель, уважайте мнение других).
|
eComStation 2.0 создана для работы на современных компьютерах (i3/i5/i7, Core Duo, AMD X2), но будет работать и на компьютерах, купленных 5 лет назад. Что нового в eCS 2.0? |
|
|
|
Готовая eComStation на SSD диске
Последний активный опрос: Какая высота барьера RPM?
[Google]
|
IBM OS/2 Warp
|