Давайте как то уже разделим ветки обсуждения на более тематические чтоли.
1)
Предлагаю обсудить идею создания АВТОМАТИЧЕСКОГО поиска API для антиэмуляции.
Идея в следующем: Парсим содержимое /system32/ на предмет всех dll, дергаем оттуда весь экспорт, собираем в одном месте все возможные *.H файлы содержащие все воможные протипы.
Пытаемся для каждой экспортируемой функции в dll найти ее прототип.
Далее создаем кодес вызываю каждую функцию с какими то рандомными параметрами скажем 1000 раз. Параметры для вызва собираем рандомом. Мониторим за падением приложения ( __try __catch), зависанием приложения (например мы вызвали MessageBox) и прочими аномалими. В процессе работы мы собираем статистику "БЕЗОПАСНЫХ АПИ"
Собственно это уже сделано для системных библиотек, могу поделиться.
Далее: Повторить тест уже над безопасными апи, но параметры генерировать как то более осмыслено. Как я пока не решил. Возможно это и не нужно.
Далее:
Создаем заведомо паленый шелкод, обрамляем его декриптором и запуском аля
Далее создаем генератор исходников, который наполняет функцию ANTI_EMUL вызовом какой то апишки из полученных ранее "БЕЗОПАСНЫХ" и результатом работы функции например будет расшифровыватсья шелкод. Далее компилируем эти исходники и чекаем на аверах, купить сервис или поднять свйо АВчек не проблема.
В итоге мы имеем огромный набор АПИ, который можно использовать в антиэмуляции, причем ничего не мешает запилить софт, который будет напичкивать наш лоадер ими на этапе предкомпиляции....
Я ебанулся?
2) Удобное криптование строк. Уверен что у всех кто что-то писал оно уже есть, но повторюсь. У меня запилен кодес, который в Visual Studio перед сборкой софта криптует в исходнике все строки, кодес вызывается первым при нажатии "кАнпелИровать".
Заменяет в исходнках строки с "message" на cr_crc32("message"). (где crc32 - это CRC от строки)Создает файл с дефайнами вида:
Ну и само генерирует пароль для криптования строк при каждой компилции.
Мы имеем рандомизацию ключа, удобное отображения строк в сорце (не printf(decrypt("\x66\x12\x80\x59\x21\x58\x81\x60")) и поди вспомни шо там у тебя, а printf(cr_0der3("Message"));
Короче кодес к студии есть, юзабелен, легко перепилим на любой язык. Это так к слову, из удобностей
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"));
Короче кодес к студии есть, юзабелен, легко перепилим на любой язык. Это так к слову, из удобностей