Криптор для DLoader

паук

RAID-массив
Пользователь
Регистрация
03.07.2011
Сообщения
98
Реакции
1
Давайте как то уже разделим ветки обсуждения на более тематические чтоли.

1)
Предлагаю обсудить идею создания АВТОМАТИЧЕСКОГО поиска API для антиэмуляции.

Идея в следующем: Парсим содержимое /system32/ на предмет всех dll, дергаем оттуда весь экспорт, собираем в одном месте все возможные *.H файлы содержащие все воможные протипы.
Пытаемся для каждой экспортируемой функции в dll найти ее прототип.

Далее создаем кодес вызываю каждую функцию с какими то рандомными параметрами скажем 1000 раз. Параметры для вызва собираем рандомом. Мониторим за падением приложения ( __try __catch), зависанием приложения (например мы вызвали MessageBox) и прочими аномалими. В процессе работы мы собираем статистику "БЕЗОПАСНЫХ АПИ"
Собственно это уже сделано для системных библиотек, могу поделиться.


Далее: Повторить тест уже над безопасными апи, но параметры генерировать как то более осмыслено. Как я пока не решил. Возможно это и не нужно.

Далее:
Создаем заведомо паленый шелкод, обрамляем его декриптором и запуском аля
Код:
        char SC[]="\x66\x12\x80\x59\x21\x58\x81\x60\x36\x32";
        void (*shell) ();        
        ANTI_EMUL();
        EncryptData(SC,KEY);
	shell = (void(*)()) (void*)SC;
	shell();

Далее создаем генератор исходников, который наполняет функцию ANTI_EMUL вызовом какой то апишки из полученных ранее "БЕЗОПАСНЫХ" и результатом работы функции например будет расшифровыватсья шелкод. Далее компилируем эти исходники и чекаем на аверах, купить сервис или поднять свйо АВчек не проблема.

В итоге мы имеем огромный набор АПИ, который можно использовать в антиэмуляции, причем ничего не мешает запилить софт, который будет напичкивать наш лоадер ими на этапе предкомпиляции....


Я ебанулся? :)

2) Удобное криптование строк. Уверен что у всех кто что-то писал оно уже есть, но повторюсь. У меня запилен кодес, который в Visual Studio перед сборкой софта криптует в исходнике все строки, кодес вызывается первым при нажатии "кАнпелИровать".
Заменяет в исходнках строки с "message" на cr_crc32("message"). (где crc32 - это CRC от строки)Создает файл с дефайнами вида:
Код:
//"Message"
#ifdef CRYPT_STR
#define  cr_d8731ec1(a)    DecryptStr("Horu`m")
#else
#define  cr_d8731ec1(a)  GetStr(a)
#endif

Ну и само генерирует пароль для криптования строк при каждой компилции.

Мы имеем рандомизацию ключа, удобное отображения строк в сорце (не printf(decrypt("\x66\x12\x80\x59\x21\x58\x81\x60")) и поди вспомни шо там у тебя, а printf(cr_0der3("Message"));

Короче кодес к студии есть, юзабелен, легко перепилим на любой язык. Это так к слову, из удобностей
 
паук пишет:
Далее создаем кодес вызываю каждую функцию с какими то рандомными параметрами скажем 1000 раз. Параметры для вызва собираем рандомом. Мониторим за падением приложения ( __try __catch), зависанием приложения (например мы вызвали MessageBox) и прочими аномалими. В процессе работы мы собираем статистику "БЕЗОПАСНЫХ АПИ"
Подобные действия в "быту" называют - Fuzzing
Я вообще противник этих "гаданий на картах", все же лучше с помощью реверса знать точно - что эмулит, а что нет
Антиэмуляционный Fuzzing - я бы попробовал начать с гугла, там есть наверное уже тулузы и даже скорее всего в исходном коде + SDK
И уже на базе готовых решений пытался бы что-то делать, но это так мысли вслух...

паук пишет:
В итоге мы имеем огромный набор АПИ, который можно использовать в антиэмуляции
Я за эксперименты всегда был и буду, даже если они бесперспективные - теоретически может быть одно, а на практике другое...
Но все же, чисто теоретически когда-то эти игры могут закончицца и аверы "научацца" эмулить все и вся... (хотя сомнительно, что научаться, но все же может быть...), но это так опять мысли вслух...

паук пишет:
У меня запилен кодес, который в Visual Studio перед сборкой софта криптует в исходнике все строки, кодес вызывается первым при нажатии "кАнпелИровать".
Ну там, в студии есть в настройках раздел - Build Events
Туда (Pre-Build Event) можно поместить запуск скрипта, который и будет генерировать файл.hpp (__declspec(selectany)) до компиляции (студия сама запустит скрипт до компиляции) в котором и будут нужные сгенерированные константы и т.д. (хотя я думаю, что мы об одном и том же)

ЗЫ: тут у тебя получилось 2 темы в одной и каждая достойна более детального отдельного обсуждения...
Да и криптор такая штука - может иметь тысячи направлений для развития...

P. S.
Давайте здесь будем общие концепции обсуждать (практические плюсы и минусы и на основе этих фактов делать выбор), а что-то конкретное будем выносить в отдельный топ для более конкретизированного и детального обсуждения...
 
Аверы тупы,не смогут расшифрофать простой хор.

ну уж простой хор то умеют, алгоритмически это делается оч просто... ищутся поксоренные нули в коде, и производится инверная операция.. вот и ксоровый ключик...
 
если речь об эмуляции, то эмулируется тогда уж на уровне инструкций процессорных.
а вообще как бы вы представили алгоритм декрипта хора на уровне математики?
 
Автоматом набрать апи и брутом вычислить безопасные параметры идея плохая, постоянно будут всплывать косяки.
То что Fuzzing показал какие то результаты на вашей ос и с текущей конфигурацией памяти это вовсе не факт что после ребута результаты будут те же самые и тем более на отличной ос...,
опять же прототипы зачастую не подробно описаны, т.е. непонятно что опционально а что нет а уже про то что передаются структуры к которым тоже нужны описания...короче такую базу нужно создавать ручками.
Начните с составления списка самых популярных апи, то есть выстройте для всех апи рейтинги популярности и заполняйте свою базу по этому списку.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Автоматом набрать апи и брутом вычислить безопасные параметры идея плохая, постоянно будут всплывать косяки.
То что Fuzzing показал какие то результаты на вашей ос и с текущей конфигурацией памяти это вовсе не факт что после ребута результаты будут те же самые и тем более на отличной ос...,
опять же прототипы зачастую не подробно описаны, т.е. непонятно что опционально а что нет а уже про то что передаются структуры к которым тоже нужны описания...короче такую базу нужно создавать ручками.
Начните с составления списка самых популярных апи, то есть выстройте для всех апи рейтинги популярности и заполняйте свою базу по этому списку.
8 лет прошло:D
 
8 лет прошло:D
Мне кинули сцыль и попросили сделать комент =)...8 лет прошло а идея вот так автоматом надергать апи все еще всплывает то тут то там.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх