Поскольку Themida совсем недавно понадобилась мне для одного из моих приложений, я решил написать по ней небольшой обзор. Заодно попросил автора ответить на некоторые интересующие меня вопросы. Думаю, ответы будут вам тоже интересны. Результаты этого небольшого интервью ищите в конце статьи. Хочу обратить внимание, что статья написана на базе Themida версии 2.
В ней появилось несколько новых возможностей по части макросов. Демка двухлетней давности с на официального сайта, их лишена. Базовая информация. Фактически, существует четыре продукта на базе технологии Themida. Все, о чем дальше у нас пойдет речь, работает как в Themida, так и в Win. License. Themida – это сам протектор, который является основным предметом данной статьи.
- Windows Vista x64 требует, чтобы все драйверы имели цифровую подпись. Если какой-либо драйвер не имеет цифровую подпись, то Windows Vista x64 .
- Программа для обхода защиты StarForce. StarForce Nightmare - это специализированная утилита, которая позволяет запускать любые игры, .
- Подробная информация и актуальная версия драйвера Старфорс для. Поддержка Windows XP x64, Windows Server 2003 x64, Windows Vista x64.
- А игры, защищенные StarForce естественно не запускаются. Объясните почему на 7 не хочет срабатывать драйвер ключа защиты StarForce. Раздать интернет по локальной сети Win7(64bit) -Win7(32bit) .
- Каждая виртуальная инструкция занимает 64 бита, защита сильнее, чем у. Но прежде всего, будет выпущена поддержка x64, и все .
- Драйвер Защиты Starforce для Windows 7 http:// Драйвер StarForce Protection заблокирован .
Win. License – это Themida с добавлением возможности защиты приложений на основе разного рода серийных номеров. SDK Win. License сам умеет генерировать эти серийные номера, проверять их, безопасно хранить, привязывать к железу, создавать триальные серийники с истечением срока к указанной дате или через указанное число запусков, создавать приложения, защищенные паролем и так далее. X- Bundler – это плагин для Themida и Win. License, который позволяет вам встраивать в защищенное приложение внешние файлы. Например, можно встроить файл справки или *.
Будут работать под Windows 7 после обновления драйвера. Данная информация актуальна как для 32-битных, так и для 64-битных версий Windows . Данный драйвер создан для обхода последний версии защиты StarForce 5.5-5.6. Драйвер не работает на Windows Vista x64. Будут работать под Windows 10 после обновления драйвера. Данная информация актуальна как для 32-битных, так и для 64-битных версий Windows . StarForce — торговая марка, под которой выходят программные продукты, разработанные. Существует драйвер StarForce для обхода защиты, но по заявлению автора драйвер не помогает во взломе старфорса, а просто .
Причем, обращаться к этому файлу из приложения можно как к внешнему, лежащему на диске. Приложение и знать не будет, что файл защищен Themida и находится внутри вашего *. Также можно встроить сборки, используемые . NET приложением, внутрь основного *.
Win. License DLL Control – это плагин для Win. License, с помощью которого можно реализовать свои варианты защиты на базе серийных номеров. Code. Virtualizer – это маленький независимый кусочек Themida, который позволяет исключительно преобразовывать указанные функции внутри вашего приложения в код для виртуальной машины Themida.
Никакой другой защиты он не обеспечивает (защиты от отладки, шифрования, проверок целостности и прочего в нем нет). Позволяет защищать как x.
Возможности автоматической защиты Themida. Сначала о «скучных банальностях». Антиотладчик. Поддерживается как обнаружение стандартных отладчиков, так и отладчиков уровня ядра. Есть также режим агрессивного поиска, но в этом случае приложение может отказаться запускаться на компьютерах с активными антирусами, руткитами или под Wine. Антидампер. Themida защищает приложения постоянно. Дамп памяти приложения на диск с последующим запуском не снимет защиту (кто бы сомневался. Themida прячет точку входа в библиотеку или приложение.
Шифрование ресурсов. Если в ваше приложение включены какие- либо ресурсы (иконки, файлы и так далее), они будут зашифрованы и расшифрованы только при обращении к ним. VMWare/Virtual. PC совместимость. Можно активировать этот режим для того, чтобы защищенное приложение могло запускаться под гипервизорами.
Заворачивание обращений к API Windows. Themida прячет информацию о функциях Windows API, которые вызывает ваше приложение. Информация о требуемых для запуска библиотеках также недоступна взломщику.
Защита приложения от модификации. Themida может проверять целостность приложения при его запуске, не позволяя запуститься измененной копии приложения. Можно активировать режим, при котором приложение после защиты можно будет беспрепятственно подписать . Защита памяти приложения от модификации в процессе выполнения (полезно, если вы разрабатываете, например, игру). Технология мутации кода. Весь код ядра Themida, который связывается с вашим приложением, подвергается мутации и «размазыванию». Каждый раз этот код генерируется заново, используя техники виртуализации (см.
Themida не позволяет внешним программам отслеживать обращения защищенного приложения к файлам или реестру. Сжатие. Наложение защиты приводит к довольно сильному увеличению размера исполнимого файла на диске.
Для уменьшения этого размера Themida поддерживает сжатие как самого приложения (со встроенным кодом защиты), так и его ресурсов. Themida умеет защищать формы Delphi/C++ Builder от специальным образом. Содержимое форм (фактически, *. При запуске участка кода, защищенного Code. Replace, после многочисленных проверок, он извлекается и расшифровывается.
После выполнения опять заменяется мусором. Themida может сама проанализировать ваше приложение и выбрать кажущиеся ей подходящими для такой защиты функции. Но будет лучше, если вы сделаете это сами с помощью макросов (о них речь пойдет далее). Виртуальная машина. Виртуальная машина Themida – один из самых сильных способов защиты приложения.
Суть его состоит в том, что части вашего кода заменяются сгенерированным ассемблерным кодом, но не родным для Intel процессоров, а кодом для абстрактного виртуального процессора со своей системой команд и внутренней структурой. Themida каждый раз случайным образом генерирует план его архитектуры. Таким образом, в коде защиты становится сложно разобраться. Базовая защита, защищенный код относительно быстро выполняется.
CISC- 2. Расширенная защита, код занимает больше места, чем в случае CISC. Чуть более медленный. RISC- 6. 4. Каждая виртуальная инструкция занимает 6. CISC, но защищенный код выполняется медленно. RISC- 1. 28. Усовершенствованный супермедленный и суперзащищенный вариант RISC- 6. Для CISC процессоров поддерживается одновременное встраивание в защищенное приложение нескольких виртуальных процессоров одного типа, но с разной системой команд. Это повышает защиту, но увеличивает размер исполняемого кода приложения.
Генерация шума позволяет смешивать производящие полезную работу инструкции с ничего не значащими для еще большего затруднения работы хакеру. Как и в случае с Code. Replace, Themida может сама выбрать, какие функции внутри вашей программы защитить преобразованием в код для виртуальной машины.
Но лучше сделать это самостоятельно (см. Доступны возможности локализации интерфейса приложения (окна с ошибками и системными сообщениями) и вставка заставок (все же время запуска защищенного приложения увеличивается на 5.
Themida поддерживает управление с командной строки, что позволяет интегрировать ее в Build- систему. Если даже вы используете все, что перечислено выше, ваше приложение все равно могут разломать. Чтобы максимально затруднить работу хакеру, следует использовать макросы Themida. О них сейчас и поговорим. Макросы Themida. Они имеют для протектора специальное значение. Фактически, они информируют Themida о тонкостях внутренней структуры вашего кода, позволяя эффективнее защищать его.
Готовые макросы в SDK есть для ассемблера, C, D, Delphi и Visual. Basic / Pure Basic. Но в принципе, их можно за две минуты переделать под любой язык, который поддерживает ассемблерные или просто байтовые вставки в код.
Здесь я буду использовать Delphi синтаксис, который мне наиболее близок. Внимание! В приложениях . NET и в приложениях Visual Basic, скомпилированных в P- код, макросы использовать нельзя. VM. Макрос VM ограничивает область кода, который Themida должна виртуализировать (превратить в инструкции для виртуальной машины, настройки которой вы задаете в интерфейсе). Используется следующим образом.
Например, проверка ключа активации, расшифровка файлов данных, проверка наличия ключа защиты и так далее. Ограничения: Непосредственно внутри блока не должно быть работы с исключениями (try, raise)Внутри блока нельзя использовать другие макросы. VM. Используется он также. Для указания требуемого уровня виртуализации придется отредактировать соответствующий *. Delphi (см. Большое значение уровня виртуализации приведет к сильному раздуванию кода. При уровне 0, макрос ведет себя так же, как макрос VM. Ограничения такие же, как и у макроса VM.
Code. Replace. Макрос помечает код для обработки технологией Code. Replace, о которой мы говорили выше. Используется так же, как и макрос VM.
Используется также, как и макрос VM. Этот макрос обеспечивает более слабую защиту, чем макросы VM и Code. Replace, но код под ним работает намного быстрее. Ограничения: Нельзя использовать в DLLВнутри блока нельзя объявлять переменные или выходить из процедуры (return / exit)Clear. Макрос отмечает блок кода, который будет удален из процесса после первого вызова.
Этот макрос рекомендуется использовать для операций, которые ваша программа выполняет только один раз на запуск. Например, расчет сеансовых ключей для обмена данными или проверка наличия лицензионного ключа. Используется так же, как и макрос VM. Ограничения: Нельзя использовать в DLLUnprotected.
Помечает блок, который будет удален из приложения после защиты. Например, с его помощью можно сделать так, чтобы приложение сообщало, если оно не защищено. Используется также, как и все описанные макросы. Ограничений не имеет. Check. Protection. В демонстрационной версии Themida этот макрос недоступен.
Он используется для проверки корректности системы защиты приложения. Его использование лучше всего показать на примере, взятом из Themida SDK. В этом примере 0x. При наложении защиты ассемблерные инструкции push и pop будут удалены из программы.
Вместо них будет вставлена сложная процедура проверки, которая вернет в указанной переменной (в нашем примере это Status. Protection) заданное вами число, только если не обнаружит нарушений защиты. В случае обнаружения нарушения системы безопасности, число будет случайным. Разумеется, в реальной жизни так, как показано, использовать данный макрос нельзя. Самое простое – это взять любую, использующуюся в проекте важную константу, значение которой не слишком очевидно в контексте и заменить ее на переменную. Затем использовать данный макрос на этой новой переменной где- нибудь пораньше в коде.
Если защиту снимут, значение этой константы / переменной окажется некорректным, что, скорее всего, приведет к краху приложения в самых неожиданных местах. Внутри блока макроса не должно находиться ничего, кроме указанных ассемблерных инструкций. Check. Code. Integrity. В демонстрационной версии Themida этот макрос недоступен. Макрос очень похож на Check.
Protection, просто работает с другой частью системы защиты. Его использование абсолютно аналогично. Check. Virtual. PC. В демонстрационной версии Themida этот макрос недоступен.