Секреты маскировки Крис Касперски Xakep, номер #066, стр. 066-032-4 Внедрение подложных сигнатур Как альтернативный вариант - можно не затирать сигнатуру оригинального упаковщика, а, напротив, нафаршировать файл подложными сигнатурами прочих крутых упаковщиков. Ошибочное распознавание упаковщика препятствует его распаковке, и антивирус тихо кончает, отпуская вирус восвояси. Однако этот путь не обходится без проблем. Первое и главное – где брать сигнатуры? Программы-протекторы (такие, скажем, как EPProt) подкладывают сигнатуры, надерганные из pe-сканеров, против которых они, собственно, и нацелены. Антивирусы могут использовать другие сигнатуры, и тогда наживка не срабатывает. Возьмем bo2k.exe, упакуем его ASPack'ом и внедрим одну (а лучше несколько) подложных сигнатур, услужливо предоставленных EPProt'ом. Пусть для определенности это будет tElock. В окне "select" указываем путь к подопытному файлу, в окне "insert signature" отмечаем выбранную сигнатуру (по одной за раз) и давим на "Protect EP". Зовем антивирус и говорим "фас!": AVP с победоносным хрюком свиньи, заживо спускаемой в унитаз, разрывает противника в клочья. Dr.WEB хотя и не распознает Back Orifice, но ругается на "возможно win.exe вирус", что не есть хорошо. Причина провала операции в том, что не мы одни такие умные. Слишком уж часто хакеры пытались надурить AVP с помощью EPProt'а. Но сможет ли этот антивирус распознать те же яйца, если их развернуть в профиль? Давай проверим! Загружаем обработанный файл в HIEW, дважды нажимаем <ENTER> для перехода в ассемблерный режим, давим <F5> для перехода на entry point и наблюдаем приблизительно следующую картину (наименование и расположение машинных команд могут кардинальным образом отличаться от приведенных, ведь EPProtect – полиморфный протектор, но суть останется неизмененной): Находим цепочку из четырех или более инструкций NOP и, нажав <F3>, давим на <ENTER> и вводим что-то вроде add eax, ebx/sub eax, ebx (где "add eax, ebx" добавляет к регистру eax значение регистра ebx, а "sub eax, ebx" вычитает его оттуда). В результате у нас получается следующее: Нажимаем <F9> для сохранения изменений в файле и прогоняем его через AVP. Ну и почему мы не кричим? Куда девалось наше самодовольное похрюкивание? Всего две команды затоптали, а какой результат!!! Впрочем, наше положение крайне ненадежно, и поводов для пьянки нет никаких. Едва разработчикам антивируса станет известно об этом инциденте - в сигнатурной базе появится новая строка. К тому же Dr.WEB по-прежнему матерится на win.exe вирус… Дезактивация эмулятора Что на это сказать? Неважно, кто поит девушку. Важно – кто ее танцует! И пока остальные будут с воплями топтать сигнатуры, мы ударим в самое сердце антивируса – в его виртуальную машину. Преодолеть эмулятор можно различными путями: а) вставить конструкцию, которую антивирус проэмулировать не в состоянии (самомодифицирующийся или самотрассирующийся код, обработку структурных исключений и т.д.); б) вставить команду, привязывающуюся к своему местоположению в памяти; в) использовать команду, не известную эмулятору. |