• XSS.stack #1 – первый литературный журнал от юзеров форума

Разъясните отличия морфинга кода и обфускации

Ags1of

RAM
Пользователь
Регистрация
26.11.2021
Сообщения
122
Реакции
1
Начал изучать криптографию и темы крипторов. Встретился с различными техниками, но главный вопрос - чем отличается морфинг исходного кода от обфускации? Поспрашивал у ГПТшки, но однозначного ответа не получил, всё очень схоже. Кто знает и может объяснить, объясните, пожалуйста, как можно подробнее и, если не впадлу, напишите, что из этого эффективнее и в каких случаях?
 
Простым языком:

Морфинг - процесс, когда файл меняется прямо при запуске, чтобы его сложнее было "изучать".
Обфускация - статичная попытка запутать код, изменяя имена переменных и прочую чепуху.
 
Простым языком:

Морфинг - процесс, когда файл меняется прямо при запуске, чтобы его сложнее было "изучать".
Обфускация - статичная попытка запутать код, изменяя имена переменных и прочую чепуху.
Так, ну, у меня просто было чуть-чуть другое представление о морфинге ИСХОДНОГО КОДА, то есть, как я понял, морфинг именно сурса - меняет структуру кода, но не в процессе запуска. изменение в процессе запуска, как я думаю, это одна из составляющих глобального понятия морфинга, т.е. динамическая подгрузка. Что-то мне подсказывает, что морфинг ИСХОДНОГО КОДА представляет что-то чуть-чуть другое(например, создания AST и его изменение, путём удаления/добавления узлов, ренейм переменных, методов, классов и тп., короче, если говорить в общих чертах, изменение основных параметров таких узлов, как методы(возвращаемый тип, название, модификаторы), условные операторы(изменение условий и пр), циклы, переменные, добавления новых переменных), нежели написал ты, но, возможно, я ошибаюсь, если это так, исправьте меня или дополните, пожалуйста
 
Последнее редактирование:
Пожалуйста, обратите внимание, что пользователь заблокирован
Сейчас в нашей теме часто оба термина используют для описания примерно одного и того же. Но по сути цели разные.

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

Морфинг - изменение кода с целью обхода антивирусов. Морфинг не обязательно делает код сложным для понимания человеком, иногда наоборот: морферы делают таким образом, чтобы измененный код был максимально похож на легитимный, но при этом каждый раз был разный.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Морфинг - изменение кода с целью обхода антивирусов. Морфинг не обязательно делает код сложным для понимания человеком, иногда наоборот: морферы делают таким образом, чтобы измененный код был максимально похож на легитимный, но при этом каждый раз был разный.
Не в бровь, а в глаз. Это определение нужно в Википедию вынести
 
Не в бровь, а в глаз. Это определение нужно в Википедию вынести
Если проводить аналогию со спамом. То морфинг это рандомизация кода ( {hello|hi}, {whats up?|how are you?} )
А обфускация это что-то типо "H e llo, ho w - @re y0u?" ?
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Если проводить аналогию со спамом. То морфинг это рандомизация кода ( {hello|hi}, {whats up?|how are you?} )
А обфускация это что-то типо "H e llo, ho w - @re y0u?" ?
Примерно, только гораздо, гораздо и еще несколько раз гораздо сложнее. Но суть ты уловил.
 
Сейчас в нашей теме часто оба термина используют для описания примерно одного и того же. Но по сути цели разные.

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

Морфинг - изменение кода с целью обхода антивирусов. Морфинг не обязательно делает код сложным для понимания человеком, иногда наоборот: морферы делают таким образом, чтобы измененный код был максимально похож на легитимный, но при этом каждый раз был разный.
Спасибо большое за ответ. Не подскажешь, где можно почитать о технике морфинга исходного кода? То есть у меня стоит задача именно морфить код, создавая AST и изменяя его. И я могу предположить, что, если код, допустим, метода вредоносен, то морфер разобьёт этот код на несколько частей и создаст другие методы, а потом объединит их вызовы в основном методе, или, возможно, во вредоносном коде может менять логику условных операторов, циклов, создавая под них специальные условия с заведомо рассчитанным результатом или как он может превратить вредоносный код в что-то, приближённое к легитимному? Конечно, это не все техники, так как в голове есть ещё определённое множество других, но я написал самые простые, чтобы поинтересоваться, правильно я понимаю это или нет.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх