Да тут идея простая, в целом и не новая.
Смысл такой есть у тебя зверёк, который нужно закриптовать.
Обычно крипторы его просто криптуют, ложат в ресурсы, или оверлей стаба.
Ну далее всё просто распаковка -> антиэмуляция -> запуск в памяти.
Причем запуск в памяти тоже имеет вариации:
- Инжект в сторнний процес.
- Создание процесса.
- Инжект в процесс стаба.
Мне стало интересно, что будет если не создавать билдеры, а всё делать на уровне исходников, т.е. в данном случае билдера выступает вижуалка.
А криптованный зверёк попадает не в ресурсы, или оверлей, а в секцию дата, т.е. создаётся буфер с криптованным зверьком (Наподобии шелл-кода), пример:
uint8_t *crypt_data[] = {
********
}
Ну собственно далее уже движек наполнялся различными приёмами антиэмуляции и автоматической модификации кода, вот эти приёмы (Не все они попали в движек, т.к. не всегда есть время и лень):
1)Генерация фейковых инструкций на ассемблере, основной смысл, что в данном проекте не нужно использовать API винды для исполнения опкодов:
https://ru-sfera.org/threads/polimorfnyj-generator-musora.3792/
2)Генерация мусорного кода (В этом проекте его нет, можно-будет добавить, просто руки недоходят), тут смысл генерировать исходник в момент сборки проекта:
https://ru-sfera.org/threads/generator-musornogo-koda-na-si.3866/.
3)Альтернативная генерация мусорного кода в момент сборки проекта (Есть в движке):
https://ru-sfera.org/threads/metapr...m-metamorfnyj-dvizhok.3837/page-2#post-146439
4)Мутирование самого криптовонного зверька, смысла такой, что после раскриптовки попытаться изменить код зверька перед запуском, вот простой пример (Это есть в движке):
https://ru-sfera.org/threads/prostoj-dvizhok-mutirovanija-ispolnjaemogo-fajla.3823/
Более сложный:
https://ru-sfera.org/threads/permutacija-ispolnjaemogo-fajla-build-polychaos-x86.3821/
5)Что-там ещё было не помню.) А-да, дурацкая антиэмуляция, просто сложная генерация ключа и простые трюки, тут особо интересного ничего нет...
Есть ещё пример похожего проекта от Мердока, с експлоит.ин, у него интересно сделано (Я этот проект модифицировал в своё время, но не для паблика), вот-что получилось:
- Также в исходнике генерируется мусор автоматически.
- Модуль запуска в памяти сделан как шелл-код, но этот шелл-код я закриптовал.
- Происходит мерж шелл-кода запуска в памяти с мусором.
- Ну собственно далее антиэмуляции, попытка морфинга самого зверька (Не всегда правда работает), запуск.
Как реагируют антивирусы:
В целом добивались фуда на скантайме, на рантайме в зависимости от вируса у многих детект (Касперский, Езет и т.д.).
Если распросторянть зверька, по началу легко чистить, потом (Через неделю примерно) видно накладывается какая-то хитрая сигнатура и тяжело уже чистить, приходится много чего менять, короче гемор...)))
Особенно напрягает виндовый дефендер, он то детектит, то нет. Особенно облако ихнее, хрен-знает как работает...)))
Под отладчиком несмотрел, если интересно исследовать такие проекты, могу скинуть примеры в личку.)