Что круче полиморфа

Тема в разделе "WASM.BEGINNERS", создана пользователем dell, 8 янв 2007.

  1. spa

    spa Active Member

    Публикаций:
    0
    Регистрация:
    9 мар 2005
    Сообщения:
    2.240
    tonyStark
    обоснуй, по каким критериям круче? в каких случаях и т.д. А то "просто" круче это обычно соседу по парте говорят.
     
  2. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    ну есть разница между просто шифровкой данных которые надо спрятать от аверов, а тело расшифровщика постоянно меняется и изменения тела декриптора на уровне инструкций(опкодов) с сохранением логики проги
     
  3. Voodoo

    Voodoo New Member

    Публикаций:
    0
    Регистрация:
    9 апр 2003
    Сообщения:
    297
    Адрес:
    Новосибирск
    я вот что не совсем понял - метаморф в общем случае убивает эвристический анализ?
     
  4. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    В общем случае - метаморф убивает бизнес. Любой.
     
  5. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    нус зависит от рук которые его писали....в общем случае метаморф обеспечивает облом сигнатурного анализа + эвристики + к этому хороший антиэмуль и должно выглядить довольно таки успешно
     
  6. dtt

    dtt New Member

    Публикаций:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    26
    удачи в отделении кода от данных
     
  7. dyn

    dyn New Member

    Публикаций:
    0
    Регистрация:
    30 окт 2009
    Сообщения:
    566
    tonyStark
    Примеры успешных метаморфов в студию :)
     
  8. dtt

    dtt New Member

    Публикаций:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    26
    вообще у меня ощущение что человек говорит о пермутаторе
     
  9. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    чего это о пермуторе? я не говорю за тупо разбить код на блоки и рэндомно менять их местати с сохранением функциональности и вообще работоспособности, а о том что бы разложить инструкции на составляющие, генерировать множество путей к одной цели.
    вообщем -то я так понимаю что здесь мнения о полиморфике и метаморфике у каждого свое ))))

    полиморф -код декриптора зарбавляется мусорными инструкциями
    в случае метаморфа команды меняюся на уровне опкодов.....т.е. генерим множество путей к одной команде
    например команду MOV можно разложить на xor/add, push/pop, xor/or, xor/and и т.д.

    mov eax,ebx xor eax,eax
    add eax,ebx

    т.е. был опкод 8B C3, а стал 33 С0 03 С3
     
  10. dtt

    dtt New Member

    Публикаций:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    26
    http://z0mbie.daemonlab.org/metamorf.txt
    http://z0mbie.host.sk/permut.html
    прочитайте это, и все встанет на свои места. где пермутация, а где метаморфизм :)
     
  11. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    ))))))))) ну и что с этого? что я не так в Вашем понимании не так написал?

    т.е. ты ты и полиморф и метеморф все относишь к пермутации, твое право
     
  12. dtt

    dtt New Member

    Публикаций:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    26
    метаморфизм - это создание (мутация) только декриптора. пермутация - это мутация самого кода программы.
     
  13. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    тю, а я о чем писал в предыдущем топике

    помоему по контексту понятно, что о коде декриптора идет речь
     
  14. dtt

    dtt New Member

    Публикаций:
    0
    Регистрация:
    9 окт 2010
    Сообщения:
    26
    Извини, не правильно тебя понял :)
     
  15. deLight

    deLight New Member

    Публикаций:
    0
    Регистрация:
    26 май 2008
    Сообщения:
    879
    dtt, tonyStark
    Что вы несете? Мир и радость или стало быть что-то еще (троллинг)?..

    Пермутация, если приложить этот термин к коду, это скорее можно представить как перестановку инструкций
    (связка push 302h; popfd не должна быть нарушена), пусть регистров в инструкциях, термин этот встречается
    к примеру в комбинаторике и появился он там раньше чем в computer science.

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

    Метаморфизм - исходный машинный код преобразуется в абстрактное представление (intermediate language), изменения производят на этом уровне, после чего это все транслируется в машинный код. Впринципе можно я думаю назвать метаморфизмом и без явно выделенного этапа преобразования к абстрактной части. Например при обработке группы инструкций как единого целого и тд.
     
  16. 0x4553

    0x4553 New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    13
    это и есть

    Permutating viruses are NOT containing such encrypted data, they are
    using only current code to generate new polymorphic copy.

    Разница в мифическом "encrypted data". Честно говоря мне не понятно значение метаморфизма. Все о чем вы говорите - это пермутация.
    Есть статичный декриптор, каждый раз он разбивается на на некий список элементов, происходят изменения списка, после чего все это собирается обратно в бинарный код.
     
  17. tonyStark

    tonyStark New Member

    Публикаций:
    0
    Регистрация:
    1 дек 2010
    Сообщения:
    16
    истину несем)))
     
  18. drmad

    drmad New Member

    Публикаций:
    0
    Регистрация:
    13 июн 2004
    Сообщения:
    332
    Адрес:
    Russia
    Ой, хосподи. Наворотили-то.

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

    Большинство полиморфных малварей строятся по наиболее простой схеме: содержат 1) изменяющийся от копии к копии шифровщик/расшифровщик и 2) шифруемое с переменным ключом тело. Такая малварь и получила название "обычные" или "простые полиморфики".

    Для видоизменения шифровщика/расшифровщика используются разные идеи:
    1) разбавление команд мусором;
    2) переставление отдельных команд и больших кусков местами (пермутация);
    3) эквивалентная замена отдельных команд и больших кусков ("mov eax, 0" на "xor eax, eax" и т.п.);
    4) random push или random move: расшифровщик состоит из большого числа pusheй и/или моvов, расположенных в случайном порядке и формирующих где-то в памяти или стеке код расшифровщика.

    Так же есть более сложная схема. Малварь не делится на расшифровщик и тело, а видоизменяется себя всю целиком. Вот такая малварь и называется "метаморфной". Фактически, "метаморфы" - это более сложная разновидность "полиморфов".

    При этом используются все те же идеи, ничего нового. Самые первые эксперименты такого типа (лет 12-13 назад) использовали идею перестановки кусков + разбавление мусором, их назвали "пермутантами". Потом (лет 10 назад усилиями Z0mbIE) начали использовать идею перестановки кусков + эквивалентной замены, посчитали, что это круче и назвали "метаморфами" или "фулморфами". Сейчас считается, что это тоже не круто, и современные "метаморфы" используют все идеи одновременно: и пермутацию, и разбавление, и замену, и random push и т.п. - для всего своего кода.

    Таким образом,
    - в "простом полиморфе" мутирует маленький фрагмент, а остальная часть - шифруемые числовые данные;
    - в "метаморфе" мутирует весь код.

    Вот и все. И не надо ничего лишнего выдумывать. Все уже выдумано и названо. :)
     
  19. 0x4553

    0x4553 New Member

    Публикаций:
    0
    Регистрация:
    18 сен 2010
    Сообщения:
    13
    Еще раз. Все что вы перечислили - пермутация, включая мусор, замены, перестановки етц...

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

    Скорее всего путаница между метаморфизмом и пермутацией вызвана статьей mental driller, там он рассматривает пермутацию, как составную часть метаморфизма.

    У зомби есть четкое разделение и описание, лично я, придерживаюсь его трактовки.
     
  20. PaCHER

    PaCHER New Member

    Публикаций:
    0
    Регистрация:
    25 мар 2006
    Сообщения:
    852
    На самом деле Полиморфизм Метаморфизм это просто понятия, но что одна реализация (криптованые данные) что 2ое (разбитие простой команды на состовляющие и преобразования) детектится на рас 2а, т.к. красота всего полиморфа метаморфа в большинстве случаев никак не похожа на код генерируемый компилятором, составляются маски по преоразованым блокам типа
    push 0
    pop eax
    и прочие извраты, ксоры и.т.д. даже обычно просто составить процентное соотношение байт по исполняемому коду размером 1000h результат будет весомо отличатся от обычного кода сгенеренного компилятором, а больше для детектирования и не надо, еще пару признаков по структуре размещения данных и все.

    Воттут указан более извратный метод детекта, зато более универсальный.
    hччp://vx.netlux.org/lib/vpa00.html