Как защищается софт

Всем доброго времени суток!

Как неоднократно замечалось мной и другими пользователями данного блога, многое, что здесь размещено, имеет к Линуксу опосредованное отношение. В большинстве случаев, это какие-то IT-заметки, IT-рассказы. Вот и сегодня речь пойдёт не о Юниксах, а, скорее, о Windows, ведь поговорить я хочу о средствах защиты программ под этим самым Windows.

guardant электронный ключВ руках у меня есть электронный ключ защиты Guardant, программатор для него «Guardant Integrator» — обе эти штуки куплены на деньги университета, в котором я учусь, так что всё законно. Программатор уже установлен на Windows XP (опять же спасибо университету), которая крутится на VMware Player под Ubuntu. Плюс ко всему вышеописанному — Visual Studio, дабы что-нибудь закодить и позащищать. Вот такая непростая схема.

guardant in vmware ubuntu

Данный рассказ не является рекламой, я просто делюсь интересной (на мой взгляд) информацией.

Собственно, что такое Guardant:

Guardant — семейство электронных ключей для защиты программного обеспечения от несанкционированного копирования и распространения. Разработаны российской компанией Актив.

Аналогом Guardant’а является система HASP, которую, кстати, использует 1C. К сожалению, с компанией Aladdin Knowledge Systems у моего ВУЗа отношений не установлено, а значит, в HASP’е мне пока не покопаться.

Итак, вернёмся к Guardant’у. Из программы для программирования ключа можно посмотреть: что же на нём находится:

Поля снабжены комментариями — так что всё понятно. Единственное, что стоит пояснить: GSII64 — встроенный алгоритм симметричного шифрования, HASH64 — встроенная хеш-функция. Оба обсчитываются на самом ключе с помощью встроенного микроконтроллера. Маломощного, правда, зато «чёрный ящик», зато надёжно.

Напишем простенькую программу и, для начала, просто посмотрим, что мы можем с ней делать:

Дизассемблируем её, используя майкрософтовский IL

Всё как на ладони. Теперь используем автоматический режим защиты приложения:

В нём можно настроить несколько параметров. Вся защита держится, естественно, на ключике, поэтому сначала нашли его, теперь можно перейти к параметрам:

Для начала я поставил проверку наличия ключа (раз в минуту):

Создалось несколько файлов — изменённый exe’шник, dll’ка от Guardant’а, apw файл с настройками и батник (вроде, он как раз и «защищал» exe’шник).

Вот так приложение теперь «работает» без ключа.

А вот так дизассемблируется средствами, используемого до этого дизассемблера.

Следует отметить, что в обзоре в основном используется режим автоматической защиты. Но помимо него Guardant предоставляет ещё и другие возможности. Например, можно защитить своё приложение и вручную, используя предоставляемый API. Тогда защита будет более изощрённая, а сложность взлома — низкая.

Ещё раз замечу, что защита осуществляется с помощью ключа. Поэтому, при программировании чего-то более сложного, чем то, что предоставляет автоматический режим, могут понадобиться дополнительные поля на ключе. Их можно создать, взяв часть «Свободной памяти». Я, к примеру, создал поле SID размером 8 байт. Теперь, используя API, я могу читать и писать в него из своего приложения.

Что же, пожалуй хватит для обзора. Надеюсь, вам было так же интересно как и мне! :)

Мне понравилась эта заметка:
Другое:
  • Рыболовные товары для ловли уклейки. Рыболовные товары от Alpha Tackle.
Как защищается софт: 8 комментариев
  1. Спасибо. Интересно. HASP — где-то у меня завалялся. Ежели не затруднит, то чуток подробней про Visual Studio и программатор.
    Ну и смысл гонять сие под Ubuntu?

    • Я так понял, что комплекс нормально работает с любыми exe файлами (не только Visual Studio). Встраивается по принципу вируса. Программатор — набор утилит, который покупается вместе с пакетом ключей. Возможно, есть на торрентах.

      Я то VS использовал, чтобы потом потыкаться в MS дизассемблере.

      Смысл гонять на убунту? Мне в любом случае нужно было всё это запускать под VMware — для изучения был получен образ с уже установленным программатором Guardant — так что разницы нет. А под убунтой был smplayer, который меня временами развлекал :)

  2. Благодарю.
    > Я так понял, что комплекс нормально работает с любыми exe файлами
    Мне казалось до сих пор, комплекс применяется для защиты новых, вновь разрабатываемых программных продуктов, с целью недопущения несанкционированного использования. Понятно, что вовсе не обязательно, это новое, создавать в VS.
    Ну, да и давно уже, существуют, так называемые эмуляторы HASP — для взлома этой защиты.

    • Я не говорю о том, что данное средство делает ПО неуязвимым к незаконному использованию. Практически любое средство не даёт такого эффекта. Даже, если используется криптографическая защита, она может быть взломана. Потребуется больше вычислительных ресурсов, но всё выполнимо.

      > Мне казалось до сих пор, комплекс применяется для защиты новых, вновь разрабатываемых программных продуктов

      На сколько я понимаю, в автоматическом режиме защищаемая программа заражается специальным вирусом, таким образом, можно защищать уже давно разработанные продукты. Моё предположение о том, что защищаются exe файлы, основано на том, что заразить произвольный файл не выйдет, нужно знать его структуру. Очевидно, разработчики нацеливались на наиболее распространённую архитектуру исполняемого файла.

      Что касается предоставляемого API — тут особо ограничений я не вижу: достаточно сделать обёртку под используемый язык, и можно использовать в самых разнообразных технологиях.

  3. Да. Согласен, всё верно. Ломать — не строить. :)
    А, о возможности защитить этим и старые, чужие «поделия»- не думал, не слышал никогда.
    P.S. Прошу прощения. Старый Мазай — разбурчался в сарае.

  4. У меня вопрос — как сделать, чтобы Guardant стал виден из linux-машины в виртуальной. Дальше дрова и сервисы я поставлю.
    У меня Altlinux, в virtualbox стоит WinXP, софт тоже виндовый.

    При возможности ответьте на lexx02[at]yandex[dot]ru

    • День добрый, Alexey!

      Если вы про ключ защиты Guardant — то тут проблема, скорее всего, в VirtualBox. Мне самому куда приятнее работать с VirtualBox, но тут пришлось использовать WMware не просто так. По сути, ключ guardant’а — обычное USB устройство (но не флешка) — вполне вероятно, что VirtualBox работает с ним неправильно.

      Советую установить дополнительно ещё один Linux, на нём — WMware. У меня каждый раз, как использую WMware проблемы начинаются с системой — похоже, неправильно WMware готовит свою версию для Linux систем.

      К слову сказать, вы могли подписаться на комментарии, дабы получить письмо :) Но мне не лень — напишу.

  5. Уведомление: Средства защиты информации (под Windows) | Блог про Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>