Как правильно выбирать криптор для файлов

c0dpro

День добрый. Ввиду неугасающей популярности стиллеров, троянов и прочей малвари, а также необъяснимой тяги форумчан к покупке инсталлов и заливов (load'ов), решил написать небольшую статейку о том, как правильно выбрать криптор и не упасть лицом в грязь и в кредиты.

Для начала немножко поясню, что такое криптор, для тех, кто не знает.

Криптор - специальный софт, который шифрует код исполняемого файла малвари и расшифровывает при запуске в момент выгрузки файла из памяти, что позволяет запустить троян, не боясь антивирусов. Не путать с криптолокерами и шифровальщиками, эти программы предназначены для иных целей.

Криптор состоит из двух (иногда больше, если есть библиотеки) компонентов - билдер и стаб.

Билдер - графическая оболочка, в которую человек вносит нужные ему настройки (тип шифрования, наличие/отсутствие автозагрузки, задержка запуска, искусственное увеличение (памп) размера файла, кража сертификата у файла, тип инжекта (вклинивание в процесс) склейка с другим файлом). Эти настройки, в свою очередь, передаются в стаб.

Стаб - специальный контейнер, который хранит в себе код шифрования файла, настройки, которые юзер передал ему через билдер, а также код для дешифровки во время выгрузки с памяти.

Крипторы обычно пишут на следующих языках: C++, ASM и его вариации, C#, VB.NET, VB, AutoIT, сейчас ещё к ним потихоньку прибавляется Питон. Детально разъясню каждый из них.

C++ - крипторы на этом языке считаются самыми стабильными и надёжными ввиду того, что данный ЯП не поддаётся декомпиляции, детекты на него вешаются главным образом по сигнатуре (подписи) и путём определения вызова RunPE. Минусами таких крипторов является скудная совместимость с файлами, написанными на .NET-языках (С# и VB), а также высокая цена (нормальный криптор на плюсах стоит от 150-400$ в месяц).

ASM - крипторы данного типа долгое время считались святым Граалем, ибо их декомпиляция так же является чем-то из области фантастики. Кроме того, размер их стаба может составлять всего 3КБ. Но, к сожалению, крипторы на ассемблере абсолютно несовместими с файлами на .NET (напомню, некоторые крипторы на плюсах совместимы частично). Спалить такой криптор можно по сигнатуре и вызову RunPE. Однако сейчас такой софт почти никто не пишет из-за его узконаправленности. Примерная цена составляет 1000-1200$ в месяц.

C#/VB.NET - самый распространённый вид крипторов. Стоят сравнительно дёшево (10-50$ в месяц), работают довольно стабильно, однако очень быстро палятся (NOD32 и его механизм автодекомпиляции, привет) и требуют наличие .NET Framework на компьютере жертвы даже в том случае, если вы криптуете файл, написанный на плюсах или ассемблере. Их стаб достаточно легко чистить, но кодер должен на время продаж попрощаться с личной жизнью и сном, ибо чистить его приходится нон-стопом.

AutoIT - скриптовый язык программирования. Сам по себе зависимостей не имеет, однако его код без водки лучше не смотреть, ввиду очень громоздкой структуры и очень большого размера. Крайне не советую такие крипторы. Во-первых, при выгрузке из памяти они могут напрочь сломать .NET Framework, так как зачастую пытаются вклинить файл в процесс vbc.exe, который является частью зависимости. Во-вторых, нагрузка процессора в этот момент может достичь 80-100%. В-третьих, нередки утечки оперативной памяти. В общем, полный шлак.


Таким образом, исходя из вышеизложенного могу дать вам ряд советов.

1. НИКОГДА не покупайте криптор на AutoIT. Даже если вы стеснены в средствах, лучше изворотиться и накопить на софт на сишарпе.
2. Если вы криптуете .NET-файл, обязательно обработайте его обфускатором (упаковщиком) до и после крипта. Это ненадолго отсрочит сигнатурные детекты.
3. Обязательно интересуйтесь языком программирования той программы, которую собираетесь криптовать, и выбирайте криптор, исходя из этой информации.
4. Не ведитесь на так называемый "уникальный стаб". Кодер один, а вас у него много, поэтому в любом случае полностью уникального кода у вас не будет. Лучше обфусцируйте файл до и после крипта.