копался у себя в исходниках и в одном из "хороших" вирусов в тебе обнаружил такой кусок кода: может даже кому-то пригадится: Code: setupSEH: ; Небольшая антиотладочная, а точнее - антитрассировочная фича. ; Реально "помогает" от эвристики NOD32... cdq assume fs:nothing push dword ptr fs:[edx] mov fs:[edx], esp pushfd pop eax bts eax, 8 push eax popfd jmp $ можете пошагово мне рассказать в чем заключается этот хитрый момент, что до сих пор NOD32 (про других даже не стоит говорить) не видет ничего подозрительного, хотя вирус по сути - очень даже опасный.. сказал бы критичный опасный.. P.S. публикавать не буду, кто хочет - мне в личку - исходники дам. школьникам и поинерам просьба не писать
не понимаю при4ем тут эвристика. антитрассирово4ные триксы юзают 4тобы вырубить эмуль в АВ, и нод должен все проэмулить имхо, завтра проверю если будет время
ProTeuS Это автор вируса комментарии делал так что я вообше незнаю что там к чему )))) GALIAFF А все подробно не вариат написать? я плохо знаю ассемблер, но очень хотел этот момет хорошо понимать и как вообше делается обход NOD32. из описание вируса:
Lamia в книге Пирогов В. Assembler тоже много чего написано. тогда зачем вообше форум? ненадо меня никуда слать. знаешь - отвечай, нет - то проходи мимо.
Сначала мы заталкиваем в стек регистр флагов pushfd потом он оказывается в eax pop eax http://sasm.narod.ru/apps/eflags/main.htm формат регистра EFLAGS. Взводим 8 бит bts eax, 8 после этого после каждой инструкции будет генерироваться отладочное исключение #db. После первого исключения бит сбрасывается снова. Перед установкой флага трассировки, устанавливается SEH обработчик, и мы отправляемся в него при возникновении #DB. трюк старый же PS >> тут все просто, TP флаг возводится Флаг TF называется вообще-то PPS Нет бы заюзать трассировку ветвлений для самотрассировки; объявить свои сегменты кода, данных в GDT (для этого, ясное дело, драйвер написать), причем селектор на новый дескриптор получать динамически из драйвера, на ходу самомодифицируясь, активно прыгать между сегментами и тд. вот доразберусь в vmcb (это к теме amd-v), так напишу вам что-нибудь ядерное фо фан, если хотите. защитку, аля кракми
0x0c0de Спасибо, вот уже понятно, хотя без хорошего знание ассемблера всеравно трудно понятно. вот остался только такой любопытный момент - почему антивирус не видет это как вирус? вот отчет от вирустотала: __http://www.virustotal.com/ru/analisis/17f485f6ddab32965cb4f9b0d75b43cb как видно - самые известные антивирусы ничего не видят.
Ты уверен, что это единственный подобный приём в коде? Поскольку, вообще-то, не должны аверы так плохо на вызов обработчика исключений реагировать.
Допустим если антивирус проверяет по определенной сигнатру, а не эмулирует работу вируса, то вставив такой код он не будет его видеть, но все же он должен и эмулировать вирус, так что это фантастика..
Я тебе могу множество произвести и даже криптор полиморфный предложить,но если ты сам будеш подсказки постоянно искать то беспонту!