Enigma protector что это
Больше не энигма. Ломаем защиту приложений Enigma x64 актуальных версий
Содержание статьи
Бытует распространенное мнение, что к категории крутых, хороших годных защит относятся VMProtect и Themida. В них, мол, и криптование, и виртуальные машины, и антиотладка. Все остальное — так, для лохов и младших школьников. Например, для какой‑нибудь «Энигмы» в сети можно найти кучу туториалов и видосов с инструкциями по взлому, воспользовавшись которыми, любой нуб может почувствовать себя кулхакером.
Отчасти утверждение справедливо: туторов, включая видео, в интернете действительно полно, а при желании можно найти и однокликовые тулзы для взлома приложений. Некоторые из них даже работают. С небольшой оговоркой — это касается старых версий защиты, которая была, мягко говоря, не очень. В последних версиях Enigma создатели постарались как можно сильнее осложнить жизнь хакерам.
Большинство решений они позаимствовали у «взрослых» защит (ниже читатель сможет в этом убедиться). Однако, как известно, в этом мире нет ничего нового, и использование известных решений не делает взлом защиты более простым и приятным. Скорее наоборот. Давай убедимся в этом, хорошенько пощупав Enigma собственными руками.
Эксперимент
Ради эксперимента скачаем какую‑нибудь программу (для простоты — дотнетовскую) и натравим на нее, например, Exeinfo. Предположим, анализатор опознал упаковщик как Enigma Protector x64 [v.5.0 — 7.0]. Вот и отлично, мысленно выдыхаем мы: не VMProtect и не Themida, а по Enigma точно что‑то можно найти на YouTube. Лезем в гугл — и правда, видосов полно, однако максимальная ломаемая версия — 4, а по x64 нет вообще ничего.
Ну что ж, думаем мы, не боги горшки обжигают: не могли же они придумать что‑то принципиально новое? Попробуем действовать по образу и подобию, авось получится. И вот тут нас поджидает неприятный сюрприз.
Придется браться за дело основательно. Для начала установим плагины ScyllaHide и Scylla, чтобы хоть как‑то заработала отладка. Благодаря первой тулзе программа наконец‑то позволяет загрузить себя в отладчик. Однако радость оказывается преждевременной: после прерывания в процессе никакие настройки ScyllaHide не позволяют нам продвинуться дальше, программа захлопывается с завидным упорством. Scylla придет на помощь чуть позже, пока же попробуем извлечь всю выгоду из маленькой победы, которую мы только что одержали.
Итак, программа загружена в отладчик и пошагово трассируется. Потихоньку двигаемся, минуя несколько саморасшифровывающихся участков кода, и обнаруживаем, что они — всего лишь обвязка для огромной упакованной и зашифрованной секции, стартовая точка которой выглядит так:
Справка
The Enigma Protector
The Enigma Protector is a powerful tool designed for complex protection of program modules. Program modules include the following types of objects:
In this context the term «protection» means realization of two major ideas. The first one is «try before you buy» concept support system (the mentioned concept is the main principle of the shareware marketing method). And the second one is protection of program module machine code from analysis and cracking. As it can be seen, the protection is realized in different, but nevertheless greatly interrelated aspects which are protection of the developer’s economic interests and technical protection of a software product. Later we will consider these ideas in more detail.
The Enigma Protection and motivation for buying
«Try before you buy» conception support system
Almost every commercially distributed software product has a customer-key protection system. The software developers have to build various enciphering algorithms into their programs. In many cases these algorithms have low anti-cracking and anti-direct-enumeration protection rate. Suggested «try before you buy» concept support system provides functionality which is necessary to work with registration keys. It gives easy ways of interaction between the software developer and the user (customer). Functions of unique keys generation (within a certain project scope) have a high protection rate. The Enigma Protector uses enciphering algorithms which are congruous to RSA algorithm with the key of 512 bit length. This makes it impossible for a cracker to create spurious registration keys. Functionality of the program module trial limitation is also provided. The user who works with the protected program has an ability to try its operational capability within some period of time. At the end of this period, the program module can no longer work normally. To restore this ability, it is necessary to perform the ordering procedure (which usually requires payment).
Protection of program module machine code
During the distribution of their own program product, every shareware developer faces the problem of cracking. Herewith serial numbers, spurious key generators and so on get a wide access. The effect of this «try before you buy» concept is invalidated and the shareware marketing method loses its efficiency. For the developer this reveals itself in reduction of amount of monthly sales and loss of profit. The suggested protection of machine code inckudes creation of series of considerable hardships on the way of persons (crackers) who try to perform an unauthorized code analysis and modifications for the purpose of illegal use. Machine code compression and enciphering are supported. It is possible to make a considerable reduction of the program module size without the loss of its working capacity.
To start working with The Enigma Protector read the following sections:
Managing of licenses
The Enigma Protector includes several unique tools for managing licenses:
What can The Enigma Protector do?
The Enigma Protector has a hard scheme of registration keys generation:
The Enigma Protector has a wide range of features to limit time of module usage:
The Enigma Protector has a lot of features to make your software resistant to cracking:
The Enigma Protector has features to help the programmer to add beautiful things into existing module without writing any additional sources strings:
Enigma protector что это
Профессиональная система
лицензирования и защиты программного
обеспечения для Windows
Enigma Protector – это мощная система, разработанная для
комплексной защиты исполняемых файлов.
Особенности Enigma Protector
Защита файлов
Набор функций и технологий, которые позволяют защитить исполняемые файлы от взлома, исследования, модификации и дизассемблирования. Использование виртуальной машины позволяет запускать часть кода приложения и защиты на собственном виртуальном процессоре, несанкционированный доступ к которому является очень сложной задачей.
Система лицензирования
Система лицензирования позволяет быстро наладить процесс проверки регистрационных ключей, привязки лицензии к определенному компьютеру и ограничить срок действия лицензии. Широкие возможности системы лицензирования позволяют создавать собственные генераторы ключей, а также использовать встроенные или легко настраиваемые CGI-генераторы ключей.
Virtual Box
Virtual Box – уникальная технология, позволяющая объединить файлы, используемые вашей программой, в один модуль. Эта функция поддерживает всевозможные виды файлов: dll, ocx, mp3, avi и др. Virtual Box обеспечит защиту ваших файлов, не допустит их копирования, а также использования в третьих продуктах.
The Enigma Protector x64
Enigma Protector позволяет также защищать и 64-битные исполняемые файлы. Системы защиты x86 и x64 совместимы, как и регистрационные ключи, созданные в этих программах. Enigma Protector x64, однако, является отдельным приложением, которое можно скачать в разделе загрузок.
Enigma Virtual Box
Enigma Virtual Box – система виртуализации приложений для Windows, которая позволяет корректно объединить все файлы приложения в один исполняемый файл без извлечения виртуальных файлов на диск. Это бесплатное приложение, поддерживающее как x86 (32-битные), так и x64 (64-битные) исполняемые файлы.
The Enigma Protector
Профессиональная система лицензирования и защиты
исполняемых файлов. Это необходимый инструмент
для каждого разработчика платного и условно-бесплатного
программного обеспечения для Windows.
Использование The Enigma Protector позволит избежать появления взломанных версий ваших программ в свободном доступе, а, следовательно, приведёт к стимулированию процесса продаж. Благодаря криптостойким алгоритмам создания регистрационных ключей никто не сможет восстановить/воспроизвести генератор регистрационных ключей для ваших приложений. Различные методы обфускации, мутации и виртуализации кода помогут защитить вашу программу от взлома, модификации, исследования, незаконного извлечения ценных данных и уникального функционала и т.д.
Система лицензирования | Очень часто для продажи программного обеспечения в сети интернет используется схема с предоставлением зарегистрированному пользователю лицензии в виде регистрационного ключа. Enigma Protector содержит гибкие возможности для встраивания системы проверки лицензий в программное обеспечение. Система генерации лицензий (регистрационных ключей) основана на криптостойких ассиметричных алгоритмах (сложность алгоритмов для генерации регистрационного ключа сопоставима с алгоритмом RSA с длиной ключа до 4096 бит). Многие программисты допускают ошибку, когда пытаются сами реализовать алгоритмы проверки и генерации лицензий либо неправильно применяют готовые решения. В результате взломщики программного обеспечения создают собственные генераторы лицензий (ключей), наличие которых, конечно же, не стимулирует продажи. Используя Enigma Protector, вы можете не беспокоиться о таких ситуациях, никто кроме вас не сможет генерировать лицензии к вашим программам. Система генерации регистрационных ключей может быть легко встроена в такие автоматические регистраторы, как ShareIt!, RegNow, Plimus и другие. Также Enigma Protector позволяет ограничить использование лицензии на определенном компьютере путем добавления в регистрационный ключ информации о компьютере пользователя. Такие регистрационные ключи будут работать только на одном определенном компьютере. Кроме ограничения (привязки) лицензии к определенному компьютеру, вы можете ограничить использование лицензии определенной датой, по количеству запусков зарегистрированной программы или количеству дней работы. Также вы можете ограничить общее время работы лицензии на определенном компьютере до нескольких часов или минут с момента запуска защищенного файла. Имеется возможность ограничить использование лицензии по географическому признаку (например, для определенной страны). Вы можете проверять регистрационные ключи в своем приложении посредством специальных функций Enigma API, которые могут быть использованы практически в любом языке программирования (C++, Delphi, Visual Basic и др.). Даже если у вас нет возможности вносить изменения в исходный код программы, вы можете использовать стандартный регистрационный диалог Enigma Protector. Регистрационный диалог имеет удобный редактор, который позволяет изменить любые настройки основного приложения и стили диалога, чтобы придать ему уникальный дизайн или сделать его аналогичным дизайну вашего приложения. Генератор ключей для ваших приложений может быть экспортирован в отдельный исполняемый файл с возможностью использования CGI web-генераторов ключей (для собственных PHP/.NET оболочек). Также он может использовать систему менеджера лицензий для хранения регистрационной информации и данных пользователей. Более того, если вам необходимо создать собственную оболочку для генератора ключей, Enigma Protector содержит бинарные библиотеки для генерации регистрационных ключей через приложения Windows x86/x64 или Linux. | |||||
Защита исполняемого кода от анализа и модификации | Если приложение взломано, это подразумевает, что какие-то данные внутри были изменены таким образом, что функционал программы изменился. Обычно изменению подвергается исполняемый код приложения. Enigma Protector шифрует и сжимает исполняемый код и данные приложения таким образом, что становится невозможно их изменить, не разрушив защиты. Технология виртуальной машины не только защищает исполняемый код и код защиты, но и усложняет (делает практически невозможным) процесс его изучения и анализа. Суть технологии виртуальной машины состоит в том, что исполняемый код переводится в собственный язык PCODE, понятный только Enigma Protector, и впоследствии он выполняется на внутреннем эмуляторе центрального процессора. Виртуальная машина использует различные схемы при создании каждой защиты, и разобранный алгоритм для одной виртуальной машины является совершенно бесполезным для другой. Одним из лучших видов защиты программного обеспечения от взлома является более тесная интеграция функций защиты с исполняемым кодом приложения. Для этой цели вы можете использовать специальные функции Enigma API, которые позволяют контролировать массу параметров, таких как статус лицензии, статус пробного (trial) периода и многое другое. | |||||
Испытательный (trial) период | При продаже обеспечения в сети интернет очень важно показать пользователю полный функционал программы, при этом ограничив использование полнофункциональной версии определённым сроком. Такое ограничение называется испытательным (trial) периодом. По истечении такого срока пользователь должен либо купить программу (зарегистрировать), либо удалить ее с компьютера. Enigma Protector позволяет автоматически добавить возможность испытательного срока в приложение, причем испытательный срок может быть задан с учётом широкого ряда параметров. Например, количество запусков программы, количество используемых дней, использование до определенной даты, количество минут или часов с момента запуска. Для того чтобы пользователь не смог самостоятельно продлить испытательный период, Enigma Protector содержит функцию контроля системных часов компьютера. Если будет замечено, что системные часы были переведены назад, программа автоматически перестанет работать. Для сброса испытательного периода пользователь должен будет зарегистрировать программу, т.е. получить от вас регистрационный ключ. Вы можете контролировать параметры испытательного срока сами. Для этого разработана специальная система функций Enigma API, которая в любой момент предоставит вам данные об использованном и оставшемся испытательном сроке. | |||||
Широкий ряд уникальных функций проверок | Enigma Protector позволяет проверять, запущен ли отладчик (инструмент для исследования исполняемого кода программы), проверить целостность (контрольную сумму) файла и кода защиты, количество запущенных копий приложения (с возможностью ограничить количество одновременно запущенных), проверить имя файла, тип носителя, на котором запущен защищенный файл, и многое другое. Если ваше приложение предназначено для работы только на определенных версиях Windows, просто укажите в Enigma Protector те версии Windows, на которых защищенное приложение не должно запускаться. Часто взломщики используют системы виртуализации программ (такие, как VMWare, VirtualPC, VirtualBox, Sandboxie), чтобы продлить испытательный период или подменить данные об оборудовании компьютера. Чтобы предотвратить использование защищенного файла в таких системах, Enigma Protector имеет функцию проверки наличия виртуальных машин. Уникальный набор функций для определения и мониторинга процессов позволит настроить систему защиты на определение нежелательных и вредоносных процессов на компьютере пользователя. Функция проверки запущенных процессов позволяет определить, какие программы запущены на компьютере, есть ли среди них скрытые процессы и т.п. Если ваше приложение использует какие-либо ключи, записанные в реестр, или хранит данные в файлах, которые не должны быть доступны пользователю, то с помощью функций определения запущенных процессов и загруженных драйверов можно настроить систему на определение программ, таких как RegMon (монитор обращений к реестру) и FileMon (монитор обращений к файлам), и запретить запуск защищенного приложения, если такие программы были обнаружены. | |||||
Менеджер лицензий и отправка писем | Enigma Protector позволяет хранить сгенерированные регистрационные ключи и информацию о пользователях в отдельной базе данных с помощью менеджера лицензий. Каждый разработчик сталкивается с проблемой, когда регистрационный ключ к его программе украден или используется нелегально. В подобной ситуации с помощью менеджера лицензий вы можете заблокировать определенный ключ, и программа перестанет принимать его. Система отправки писем (Mailer) поможет автоматически создать и отправить электронное письмо зарегистрированному пользователю или оправить письма всем пользователям (например, сообщения о выпуске новой версии). Вы можете задать текст сообщения, и Enigma Protector автоматически сгенерирует письма для пользователей и отправит их адресатам. | |||||
Дополнительные функции | Дополнительные функции, реализованные в Enigma Protector, позволяют добавлять в защищенный файл собственные ресурсы, такие как VERSION и MANIFEST. Если ваш файл запускается достаточно длительное время, с помощью Enigma Protector вы можете создать окно-заставку, которая будет показываться пользователю, пока идет загрузка файла. Если у вас есть собственные разработки для защиты программы, вы можете использовать их вместе с Enigma Protector с помощью системы плагинов. Суть системы заключается в том, что динамическая библиотека с вашей реализацией функций защиты будет встроена в защищенное приложение, и определенные функции будут вызваны при запуске защищенного файла. В Enigma Protector реализованы функции сжатия и шифрования кода и данных приложения. Сжатие файла позволяет уменьшить его размер в несколько раз, а функции шифрования защищают код программы от дизассемблирования, анализа и модификации. С использованием функции водяных знаков можно добавить внутрь защищенного файла определённую информацию, которая будет доступна любому пользователю или только вам. Если ваша программа предназначена для использования только внутри определенной группы пользователей, но вы заметили, что кто-то из них намеренно передает программу сторонним людям, то с технологией водяных знаков вы можете легко вычислить недобросовестного пользователя. |
Copyright © 2004-2021, The Enigma Protector Developers Team. All rights reserved.
The Enigma Protector
Профессиональная система лицензирования и защиты
исполняемых файлов. Это необходимый инструмент
для каждого разработчика платного и условно-бесплатного
программного обеспечения для Windows.
Использование The Enigma Protector позволит избежать появления взломанных версий ваших программ в свободном доступе, а, следовательно, приведёт к стимулированию процесса продаж. Благодаря криптостойким алгоритмам создания регистрационных ключей никто не сможет восстановить/воспроизвести генератор регистрационных ключей для ваших приложений. Различные методы обфускации, мутации и виртуализации кода помогут защитить вашу программу от взлома, модификации, исследования, незаконного извлечения ценных данных и уникального функционала и т.д.
Система лицензирования | Очень часто для продажи программного обеспечения в сети интернет используется схема с предоставлением зарегистрированному пользователю лицензии в виде регистрационного ключа. Enigma Protector содержит гибкие возможности для встраивания системы проверки лицензий в программное обеспечение. Система генерации лицензий (регистрационных ключей) основана на криптостойких ассиметричных алгоритмах (сложность алгоритмов для генерации регистрационного ключа сопоставима с алгоритмом RSA с длиной ключа до 4096 бит). Многие программисты допускают ошибку, когда пытаются сами реализовать алгоритмы проверки и генерации лицензий либо неправильно применяют готовые решения. В результате взломщики программного обеспечения создают собственные генераторы лицензий (ключей), наличие которых, конечно же, не стимулирует продажи. Используя Enigma Protector, вы можете не беспокоиться о таких ситуациях, никто кроме вас не сможет генерировать лицензии к вашим программам. Система генерации регистрационных ключей может быть легко встроена в такие автоматические регистраторы, как ShareIt!, RegNow, Plimus и другие. Также Enigma Protector позволяет ограничить использование лицензии на определенном компьютере путем добавления в регистрационный ключ информации о компьютере пользователя. Такие регистрационные ключи будут работать только на одном определенном компьютере. Кроме ограничения (привязки) лицензии к определенному компьютеру, вы можете ограничить использование лицензии определенной датой, по количеству запусков зарегистрированной программы или количеству дней работы. Также вы можете ограничить общее время работы лицензии на определенном компьютере до нескольких часов или минут с момента запуска защищенного файла. Имеется возможность ограничить использование лицензии по географическому признаку (например, для определенной страны). Вы можете проверять регистрационные ключи в своем приложении посредством специальных функций Enigma API, которые могут быть использованы практически в любом языке программирования (C++, Delphi, Visual Basic и др.). Даже если у вас нет возможности вносить изменения в исходный код программы, вы можете использовать стандартный регистрационный диалог Enigma Protector. Регистрационный диалог имеет удобный редактор, который позволяет изменить любые настройки основного приложения и стили диалога, чтобы придать ему уникальный дизайн или сделать его аналогичным дизайну вашего приложения. Генератор ключей для ваших приложений может быть экспортирован в отдельный исполняемый файл с возможностью использования CGI web-генераторов ключей (для собственных PHP/.NET оболочек). Также он может использовать систему менеджера лицензий для хранения регистрационной информации и данных пользователей. Более того, если вам необходимо создать собственную оболочку для генератора ключей, Enigma Protector содержит бинарные библиотеки для генерации регистрационных ключей через приложения Windows x86/x64 или Linux. | |||||
Защита исполняемого кода от анализа и модификации | Если приложение взломано, это подразумевает, что какие-то данные внутри были изменены таким образом, что функционал программы изменился. Обычно изменению подвергается исполняемый код приложения. Enigma Protector шифрует и сжимает исполняемый код и данные приложения таким образом, что становится невозможно их изменить, не разрушив защиты. Технология виртуальной машины не только защищает исполняемый код и код защиты, но и усложняет (делает практически невозможным) процесс его изучения и анализа. Суть технологии виртуальной машины состоит в том, что исполняемый код переводится в собственный язык PCODE, понятный только Enigma Protector, и впоследствии он выполняется на внутреннем эмуляторе центрального процессора. Виртуальная машина использует различные схемы при создании каждой защиты, и разобранный алгоритм для одной виртуальной машины является совершенно бесполезным для другой. Одним из лучших видов защиты программного обеспечения от взлома является более тесная интеграция функций защиты с исполняемым кодом приложения. Для этой цели вы можете использовать специальные функции Enigma API, которые позволяют контролировать массу параметров, таких как статус лицензии, статус пробного (trial) периода и многое другое. | |||||
Испытательный (trial) период | При продаже обеспечения в сети интернет очень важно показать пользователю полный функционал программы, при этом ограничив использование полнофункциональной версии определённым сроком. Такое ограничение называется испытательным (trial) периодом. По истечении такого срока пользователь должен либо купить программу (зарегистрировать), либо удалить ее с компьютера. Enigma Protector позволяет автоматически добавить возможность испытательного срока в приложение, причем испытательный срок может быть задан с учётом широкого ряда параметров. Например, количество запусков программы, количество используемых дней, использование до определенной даты, количество минут или часов с момента запуска. Для того чтобы пользователь не смог самостоятельно продлить испытательный период, Enigma Protector содержит функцию контроля системных часов компьютера. Если будет замечено, что системные часы были переведены назад, программа автоматически перестанет работать. Для сброса испытательного периода пользователь должен будет зарегистрировать программу, т.е. получить от вас регистрационный ключ. Вы можете контролировать параметры испытательного срока сами. Для этого разработана специальная система функций Enigma API, которая в любой момент предоставит вам данные об использованном и оставшемся испытательном сроке. | |||||
Широкий ряд уникальных функций проверок | Enigma Protector позволяет проверять, запущен ли отладчик (инструмент для исследования исполняемого кода программы), проверить целостность (контрольную сумму) файла и кода защиты, количество запущенных копий приложения (с возможностью ограничить количество одновременно запущенных), проверить имя файла, тип носителя, на котором запущен защищенный файл, и многое другое. Если ваше приложение предназначено для работы только на определенных версиях Windows, просто укажите в Enigma Protector те версии Windows, на которых защищенное приложение не должно запускаться. Часто взломщики используют системы виртуализации программ (такие, как VMWare, VirtualPC, VirtualBox, Sandboxie), чтобы продлить испытательный период или подменить данные об оборудовании компьютера. Чтобы предотвратить использование защищенного файла в таких системах, Enigma Protector имеет функцию проверки наличия виртуальных машин. Уникальный набор функций для определения и мониторинга процессов позволит настроить систему защиты на определение нежелательных и вредоносных процессов на компьютере пользователя. Функция проверки запущенных процессов позволяет определить, какие программы запущены на компьютере, есть ли среди них скрытые процессы и т.п. Если ваше приложение использует какие-либо ключи, записанные в реестр, или хранит данные в файлах, которые не должны быть доступны пользователю, то с помощью функций определения запущенных процессов и загруженных драйверов можно настроить систему на определение программ, таких как RegMon (монитор обращений к реестру) и FileMon (монитор обращений к файлам), и запретить запуск защищенного приложения, если такие программы были обнаружены. | |||||
Менеджер лицензий и отправка писем | Enigma Protector позволяет хранить сгенерированные регистрационные ключи и информацию о пользователях в отдельной базе данных с помощью менеджера лицензий. Каждый разработчик сталкивается с проблемой, когда регистрационный ключ к его программе украден или используется нелегально. В подобной ситуации с помощью менеджера лицензий вы можете заблокировать определенный ключ, и программа перестанет принимать его. Система отправки писем (Mailer) поможет автоматически создать и отправить электронное письмо зарегистрированному пользователю или оправить письма всем пользователям (например, сообщения о выпуске новой версии). Вы можете задать текст сообщения, и Enigma Protector автоматически сгенерирует письма для пользователей и отправит их адресатам. | |||||
Дополнительные функции | Дополнительные функции, реализованные в Enigma Protector, позволяют добавлять в защищенный файл собственные ресурсы, такие как VERSION и MANIFEST. Если ваш файл запускается достаточно длительное время, с помощью Enigma Protector вы можете создать окно-заставку, которая будет показываться пользователю, пока идет загрузка файла. Если у вас есть собственные разработки для защиты программы, вы можете использовать их вместе с Enigma Protector с помощью системы плагинов. Суть системы заключается в том, что динамическая библиотека с вашей реализацией функций защиты будет встроена в защищенное приложение, и определенные функции будут вызваны при запуске защищенного файла. В Enigma Protector реализованы функции сжатия и шифрования кода и данных приложения. Сжатие файла позволяет уменьшить его размер в несколько раз, а функции шифрования защищают код программы от дизассемблирования, анализа и модификации. С использованием функции водяных знаков можно добавить внутрь защищенного файла определённую информацию, которая будет доступна любому пользователю или только вам. Если ваша программа предназначена для использования только внутри определенной группы пользователей, но вы заметили, что кто-то из них намеренно передает программу сторонним людям, то с технологией водяных знаков вы можете легко вычислить недобросовестного пользователя. |
Copyright © 2004-2021, The Enigma Protector Developers Team. All rights reserved.