· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.VIROLOGY —› Вопрос к dr_Golova

Посл.отвђт Сообщенiе


Дата: Авг 18, 2004 12:07:15

Сейчас дописываю стэковый полиморфный движок.

Работает он так:

1) Преобразует весь код к виду
push xxxx
push xxxx
.........
jmp reg32

2) После этого каждая инструкци по многу раз (рандомер)
пермутирует например:

было: push 12345678

стало: mov eax,123000
add eax,678
push eax
xchg eax,edx
push edx
pop eax

Это так самы простенький вариант. На самом деле всё будет хитрее и сложнее.

А теперь вопрос - какие варианты его детектирование без
эмуляции кода ??? Да ну и там всё будет обильно реалистичным мусором посыпано.


Дата: Авг 18, 2004 12:08:22

Ну да там очепятка вкралась
mov eax,1230000
add eax,45678


Дата: Авг 18, 2004 12:15:13

sl0n
Твой полиморфизм только в момент выполнения?


Дата: Авг 18, 2004 12:42:33

Нет конечно, на**й он нужен если только в момент выполнения ???


Дата: Авг 18, 2004 16:21:34

Непонятен первый пункт. К какому виду преобразуется код? Покажи как к такому виду будет преобразован код из второго пункта (для следующего поколения вируса). Если движок будет увеличивать размер кода в ограниченное снизу количество раз, то это будет означать экспоненциальный рост его объёма и вследствие этого серьёзное ограничение на количество поколений...


Дата: Авг 18, 2004 16:35:52

sl0n
А теперь вопрос - какие варианты его детектирование без эмуляции кода
его можно будет засечь например статистическим анализом - в файле будет куча опкодов 0x68 (push imm32), да может и других (0xFF etc.)
после этого подключается эмуляция, и медленно медлеенннооо... :)


Дата: Авг 18, 2004 19:51:58

Ну раз непонятен 1) объясняю:
делается следующее весь код вируса представляется в виде
068 + 4 байта вируса ... а в конце делается переход на стэк. Таким образом у нас получается простейший стэковый движок. Далее после первого прохода пермутациии он мутирует к примеру так :
Из инструкции: push 12345678
Получаем : mov eax,12345678
push eax
Далее идёт следующий проход и пермутируют уже две инструкции и т.д. Да размер вируса будет расти сильно но это есть гуд, т.к. зесь как я думаю все инструкции нужно будет
эмулировать, а ещё есть такая вещь как глубина эмуляции...

Насчёт статистического анализ стоит сказать, что генератор мусора будет пытаться закосить под нормальные программы - по частоте встречи опкодов.

Вот ... жду ещё отзывов Ж)


Дата: Авг 19, 2004 16:20:44

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

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

з.ы. Доктор скорее всего тебе ничего не скажет - наверняка это страшная кибальчишечья тайна всем известной конторы :)


Дата: Авг 19, 2004 17:08:14

Дохтур во первых ничего не может сказать не увидев конкретного бинарника, а во вторых весьма наивно считать что все сотрудники ЛК спецы по полиморфам.


Дата: Авг 19, 2004 19:53:09 · Поправил: Max

Dr.Golova
ну а чиста теоретически?
допустим, статистический анализ не помогает (а его всегда можно "подогнать")
че авп будет делать дальше?
если конечно это не военная тайна...

added: кстати, трагедия про авп :))))


Дата: Авг 19, 2004 21:28:34

Кажеться в Itanium и AMD64 реализовали защиту от исполнения кода где попало и XP SP2 уже юзает эту фичу .
Наверное благодаря вирусописателям :)


Дата: Авг 19, 2004 21:30:09

Допишу и запостю ...


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.079