2016-07-04 2 views
3

Метаморфического код это код, который выводит семантический эквивалентную версию себя: https://en.wikipedia.org/wiki/Metamorphic_codeВ чем разница между метаморфическим и полиморфным кодом?

Однако полиморфного код это код, который использует полиморфный движок мутировать, сохраняя при этом оригинальный алгоритм неповрежденным: https://en.wikipedia.org/wiki/Polymorphic_engine

Итак, единственная разница в том, что полиморфный код зависит от какой-либо другой программы (полиморфный движок), а метаморфизм имеет встроенную функциональность?

Может ли кто-нибудь представить пример полиморфного кода либо по ссылке, либо в ответ?

Спасибо,

+1

Метаморфический код - это слово. Он должен иметь дело с автоматической ссылкой. Полиморфный код генерируется полиморфным движком. Короче говоря, вы можете представить себе как две части: а) код, который изменяет (другой) код b) код, который выполняет настоящую работу. Разница только в первой части, а, для метаморфизма такая часть должна быть способна сама по себе, для полиморфного кода должен быть добавлен текст в скобках. Также с той же страницы в википедии: «* Это отличается от полиморфного кода, где полиморфный движок не может переписать свой собственный код. *« –

+0

@MargaretBloom - Спасибо за ваш ответ! Можете ли вы придумать какие-либо ресурсы, показывающие, как написать простой полиморфный движок или метаморфический код? Гуглинг вокруг, кажется, но темы немного табу или несколько непопулярны. – Shuzheng

+0

У меня нет, но [этот ответ] (http://stackoverflow.com/a/11814102/5801661) есть некоторые ссылки на темы. Специально [этот] (http://www.informit.com/articles/article.aspx?p=366890&seqNum=6). –

ответ

2

Основное различие между полиморфным кодом и метаморфической кодой, является ли код, который на самом деле выполняются изменениями или нет. Полиморфный вирус расшифровывает свой код, запускает этот код, а затем при распространении сам шифрует дешифрованный код другим ключом. При запуске на другой машине дешифрованный код остается прежним. Метаморфический вирус просто запускает свой код, а затем при его распространении сам преобразует свой код в другой, но функционально идентичный код. Выполненный код отличается на каждой машине, на которой он распространяется.

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

Обратите внимание, что термин «полиморфный код» вводит в заблуждение. Вне контекста для большинства программистов это означало бы код, написанный с использованием polymorphic types.

Смежные вопросы