Отключите приложение либо разрешения которые блокируют рекламу для просмотра форума.
Большинство это Adblock, AdGuard, или антивирус.
  1. Гость, Открытие хайдов, теперь доступно каждому!ДЛЯ ПОВЫШЕНИЯ ПРАВ, ПИСАТЬ АДМИНИСТРАТОРУ! @Admin
  2. <Гарант Форума> Защита ваших сделок - комиссия 5%
Для получения доступа ко всем разделам форума необходимо пройти
Регистрацию!

Навороченные методы обхода антивируса

Тема в разделе "Статьи по безопасности и анонимности", создана пользователем nastyxa, 27 мар 2018.

Загрузка...
  1. nastyxa
    Offline

    nastyxa новичок

    Как нам известно, целью проактивного сканирования, является предотвращение заражения системы пользователя.

    Об этом мы сегодня и поговорим.

    Основные виды проактивного сканирования:
    Эвристический анализ
    Один из методов детектирования, работает на основе сканирования приложения на малварьные паттерны.

    Эмуляция
    Простыми словами, эмуляция представляет из себя хуки апи-функций, при эмуляции, антивирус доставляет в процесс свою dll - которая при загрузке перехватывает интересующие WinApi функции, и анализирует их вызовы.

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

    Антиэмуляционные приемы ожидающие вызовов системных событий по типу “нажми на кнопку”, не работают, точно так же как и sleep’ы в циклах.

    Немного о загрузчиках:
    В основном под вышеописанные задачи используется алгоритм RunPE, который как видно из названия, запускает приложение в памяти, ничего особенного в нем нет, данный метод загрузки устарел, является неэффективным.

    Первая ссылка из гугла: Github

    Алгоритм данного загрузчика заключается в создании остановленного процесса, и мэппинга имопортов из таблицы.

    LoadPE- метод загрузки, который подразумевает выполнение приложения в своей памяти, используется упаковщиками.

    Данный метод загрузки сложнее в реализации, но в разы эффективнее предыдущего, работает по следующему алгоритму:

    мэппит структуры PE в свое пространство (импорты, релокации, тлс), дополнительных процессов не создается.

    Немного о крипто-контейнерах:
    Все мы знаем, что в упаковщиках содержится зашифрованный оригинал исполняемого файла, который расшифровывается после запуска, и выполняется в памяти.

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

    Некоторые антивирусы брутят первые байты контейнера, при нахождении сигнатуры 0x4D, 0X5A(MZ), детектят в лучшем случае как упаковщик.

    В большинстве случаев проблема решается помещением крипто-контейнера с первыми рандомными байтами, и заменой MZ после распаковки.

    И если с эвристическим методом - все достаточно просто, то с эмуляцией все намного веселее.

    Давайте расмотрим как её обойти:
    1. не вызывать хукнутые функции, не вызываем подозрений, не вызывав ни 1-й, а реализовав эту функцию у себя в коде.

    2. вызывать функции напрямую, без мэппинга в таблицу импортов.

    3. использовать системные вызовы

    На самом деле существует целый ряд методов обхода эмуляции, некоторые из них перечислю ниже:
    Замена высокоуровневых апи-вызовов на низкоуровневые системные вызовы (x64 syscall/x86 sysenter).
    Полиморфная распаковка крипто-контейнеров.
    Динамическая защита памяти на основе хардварных треков.
     

Поделиться этой страницей