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

       

простой самомодифицирующийся код


Прогнав файл через AVP, мы убеждается, что он даже и не порывается хрюкать! Dr.WEB рычит, но это явление временное и скоро мы его обломаем. Открываем на радостях свежее пиво! Малость промочив горло и ощупав растущий живот, мы приступаем к более сложным фокусам. А именно – передаче управления посредством структурного исключенная, более известного под аббревиатурой SEH (которую Word упорно пытается заменить на SHE). Никакие, известные мне, антивирусы SEH не эмулируют, отладчики от него едут крышей, а начинающие хакеры тонут в диспетчере, умирая за трассировкой от старости и истощения.

Один из вариантов реализации антиотладочного кода выглядит так: заталкиваем в стек адрес старой точки входа (в нашем случае это 315E001h), заталкиваем указатель на предыдущий обработчик (он лежит в двойном слове по адресу FS:[0]) и регистрируем свой обработчик установкой FS:[0] на вершину стека. Затем возбуждаем исключение, например, порываемся делить на ноль, выполняем несуществующую машинную команду, или обращаемся к несуществующему/защищенному адресу памяти (например, лезем в ядро). Короче, была бы фантазия, а поводы для возбуждения исключения завсегда найдутся…



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