Техника выживания в мутной воде или как обуть антивирус

Генеральный план наступления или как мы будем действовать


Первое (и самое простое), что приходит на ум– обработать файл каким-нибудь навесным упаковщиком/протектором, полностью уничтожающим все сигнатуры, и скормить его антивирусу. Нехай подавится. Что?! Не хочет давиться? Значит, антивирус успешно переварил упаковщик и дорвался до внутренностей оригинального файла. Тут-то сигнатуры и поперли.

Можно ли противостоять автоматическим распаковщикам, ничего не смысля в ассемблере и не разрывая свою задницу напополам? На первый взгляд, стоит лишь откопать в сети малоизвестный упаковщик поновее, да покруче и все будет торчком. Взять, например, OBSIDIUM

(http://wasm.ru/tools/12/Obsidium.zip), который многим хакерам зубы пообломал и с которым еще не справляется ни один антивирус.

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

А другие приемы борьбы есть?! Да, и не один, а, как минимум, целых три: уничтожение сигнатур упаковщика, внедрение подложных сигнатур

и дезактивация эмулятора (прим. в оригинале статьи было еще и перемещение секций, но из-за ограничений объема это пришлось поскипать. а жаль. мужики – это к читателям – возьмите главерда за яйца! пусть дает место под полновесный абзац, иначе я за себя не ручаюсь!). Разберемся со всеми ними по порядку.

Если выбранный нами упаковщик настолько крут, что не может быть распакован на виртуальной машине антивирусного эмулятора (универсальном распаковщике), антивирус пытается опознать упаковщик в "лицо", передавая бразды правления соответствующей процедура распаковки, либо распаковывающей файл самостоятельно, либо инструктирующей эмулятор на предмет обхода антиотладочных приемов. Исказив сигнатуру упаковщика, мы предотвратим его опознание, обломав антивирус по полной программе. Причем, в отличии от сигнатур самих вирусов, до которых еще докопаться надо, сигнатуры популярных упаковщиков хорошо известны.


В частности, для ASPack/ASProtect достаточно затереть первый байт точки входа, заменив 60h (опкод команды PUSHAD) на 90h (опкод команды NOP). Строго говоря, это не совсем корректный хак, нарушающий балансировку стека, однако, никак не сказывающийся на работоспособности подавляющего большинства программ.

Как мы будем действовать? Возьмем bo2k.exe (или любой другой файл) и, предварительно убедившись, что он успешно опознается всеми антивирусами, пропустим его через ASPack, после чего повторим процедуру опознания вновь. И AVP, и Dr.WEB продолжают визжать, подтверждая тот факт, что данный упаковщик им хорошо известен.

Загружаем файл в HIEW, однократным нажатием на <ENTER> переходим в hex-режим, давим <F5>, перемещаясь в точку входа, жмем <F3> для разрешения редактирования, говорим "90", подтверждая серьезность своих намерений клавишей <F9>. Dr.WEB насупился и молчит. AVP тоже заткнулся. Естественно, помимо NOP можно использовать и другие однобайтовые команды, как-то: inc eax/40h, inc ebx/43h, inc ecx/41h, inc edx/42h, inc esi/46h, inc edi/47h, dec eax/48h, dec ebx/4bh, dec ecx/49h, dec edx/4ah, xchg ebx,eax/93h и многие другие. Не надо злоупотреблять 90h – иначе антивирусы просто пополняться новой сигнатурой и все!




Содержание раздела