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

Морфинг C++ кода

Спрошу, это круто но похоже на пермутатора исходника?
Смотря что вы закладываете под определение пермутатора.
В целом да, основная задача максимально видоизменять бинарное представление от билда к билду, остальное выше описано достаточно подробно.
На дополнительные вопросы готов ответить в TOX.

Допиливание таких продуктов, как правило, заканчивается никогда)))
Справедливое замечание, это итеративный процесс, но уже на текущем уровне с задачами поставленными неплохо справляется.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Еще хочу сказать, что лучше всего морфер работает без современного синтаксиса языка Си++
Это болезнь всех морферов исходного кода, какие бы ты не взял. Плюсы - очень комплексный язык, при разработке морфера вряд ли можно учесть все возможные варианты исходного кода, многие вещи изначально могут быть неочевидны. Куда проще обговорить с разработчиком морфера некое подмножество языка, на котором морфер гарантировано должен работать, а затем добавлять фичи по мере необходимости.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ребят. Пермутатор - морфер исходных кодов поищите в говновасме, я там выкладывал.
А вообще, это элементарно. Есть у компила от мелкософта параметры у компила
/OPT:REF
/OPT:ICF
после чего к примеру
мы объявляем функцию:

#pragma code_seg(push, ".text$019") //где здесь ".text$019" - внешним софтом в PreBuildStep меняется на рандомный номер и так остальные функции
HANDLE GetImageActCtx(HMODULE module)
{
return NULL;
}
#pragma code_seg(pop)


#pragma data_seg(push, ".data$021") //а так переменные, всегда после каждого ребилда будет все пермутированно, т.е. в разных местах и памяти сидеть
BYTE bFl = 0;
#pragma data_seg(pop)

Неужели трудно читать маны и включать фантазию или творчество
 
Пожалуйста, обратите внимание, что пользователь заблокирован
я там выкладывал
О хоспаде, то, что ты здесь написал, это - одна примитивная вещь, про которую все давно знают. Даже у меня есть здесь статья с примером парсинга и модификации Плюсового кода на базе AST, библиотеки libclang и Петухона: https://xss.pro/threads/42944/ - для базовых алгоритмов морфинга это просто, или когда тебе нужно морфить исходник лишь одного морально устаревшего криптора - это тоже просто. Но когда тебе нужно уметь покрывать весь возможный Плюсовый код со всяческими шаблонами, лямбдами, констэкспрами: тут уже нужно много вещей учитывать, не надо говорить, что это просто, если ты этого не делал.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Ню -ню, ток в паблик не выкладывал
На счет примитивных крипторов:
- вообщето есть пребуилд степ - это морфинг сорцев стаба и размазывание пэйлоада по коду
- постбилд степ - это морфинг уже готового exe
Виртуализация конечно там типа не нужна)))
Вообще не рекламь свои никчемные статейки. Про школоло питон и прочую школодребедень.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Вообще не рекламь свои никчемные статейки. Про школоло питон и прочую школодребедень
Петухон и любой другой ЯП - это всего лишь инструменты, если ими проще сделать морфер для плюсовых сорсов, то почему бы и нет? Просто: увы, дружище, ты отстал от техник, поезд уехал, поэтому некоторые вещи современного мира у тебя и вызывают отторжение, хотя и не должны бы по идее. Ну и да, у тебя нет и никчемных статеек так то, смысл писюнами меряться?

На счет примитивных крипторов:
- вообщето есть пребуилд степ - это морфинг сорцев стаба и размазывание пэйлоада по коду
- постбилд степ - это морфинг уже готового exe
Виртуализация конечно там типа не нужна)))
Да это по большому счету не важно. Крипторы в принципе, как технология, уже морально подустарели. От каких-то всратых аверов морфенные билды стаба может и спасут до поры до времени, но опять же в современном мире зачем морфить стаб криптора, если можно морфить саму малварь и отказаться от криптора в принципе. Но это уже философские вопросы, которые в этой теме мало уместны.
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Дык, ты походу не понял.
Ну к Примеру метки в WinLicense или там в наномиты в армадилло, я описал что еть пребилд и постбилд, не шаришь - не лезь или дай суперсэмпл ))))))
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Дык, ты походу не понял
Тема про морфинг С++ сорсов, обсуждается морфинг С++ сорсов, статья про морфинг С++ сорсов, вообще не понимаю, при чем тут твои морально устаревшие крипторы и постбилд. И опять же, я тебе уже говорил, бремя доказательства лежит на том, кто доказывает, а не на том, кто отрицает, с какой стати я тебе должен какие-то супер семплы?
 
Это болезнь всех морферов исходного кода, какие бы ты не взял. Плюсы - очень комплексный язык, при разработке морфера вряд ли можно учесть все возможные варианты исходного кода, многие вещи изначально могут быть неочевидны. Куда проще обговорить с разработчиком морфера некое подмножество языка, на котором морфер гарантировано должен работать, а затем добавлять фичи по мере необходимости.
Собственно так и происходит. Изначально обговариваются детали: формат проектов, нюансы, которые нужно уметь поддерживать, и, если нужно, делаем тест на скелете проекта.
В случае возникших проблем с парсингом либо берется время на допиливание парсера либо прямо говорится, что в данном контексте проект не поддерживается.

Ребят. Пермутатор - морфер исходных кодов поищите в говновасме, я там выкладывал.
Пермутация может быть применима к ассемблеру, но едва ли к си-подобным языкам. Тут решает именно морфинг.
Гипотетически есть возможность вклиниться в процесс сборки на этапе генерации компилятором асм листинга и пермутировать его, но стоит только отойти от паттернов генерации конструкций топовых копиляторов при пермутации, и будет уйма генериков по аномалиям в конструкциях измененных выражений и статистике опкод. Едва ли это актуально в 22г.

- вообщето есть пребуилд степ - это морфинг сорцев стаба и размазывание пэйлоада по коду
- постбилд степ - это морфинг уже готового exe
Это всего лишь один из вариантов триггеров для запуска морфа\обфускации. Одно не отменяет другого.
Кстати да, постблид часто так же важен как и предобработка сорцов.
Например замер итоговой энтропии и статистики опкод, карты вызовов винапи, таблицы импорта и формирование todo для реморфа с целью все эти параметры учесть и нормализовать.

Приобрел морфер некоторое время назад, и вот что хочу сказать. Поначалу было достаточно много проблем, из за которых ломался код (компилятор выдавал ошибки), или же сам морфер, но автор оперативно поправил всё. Продукт полностью справляется со своей задачей. Еще хочу сказать, что лучше всего морфер работает без современного синтаксиса языка Си++ (namespace, классы, и прочее), это на текущий момент. Но автор обещает полную поддержку современного языка в скором времени. К тому же понравилось то что вместе с продуктом идет очень подробный Readme файл с описанием каждой функции морфера и ее настройкой, и описание того, как должен выглядеть код, чтобы морфер его правильно прочитал. Еще стоит сразу сказать, что морфер может сломать рантайм, по этому каждый файл нужно проверять вручную.
Я считаю, что со временем данный морфер будет только развиваться.
Благодарю за отзыв .
 
Пожалуйста, обратите внимание, что пользователь заблокирован
К си применимо на стадии Prebuild-Step пермутатор, если шпарить в префиксах функций и глобальных переменных.
Нужно все разбивать на мелкие функции и переменные. Они в файле даже в статике потом будут рандомезированы и пермутированы - пермутация это не морфинг (пермутатор - это когда все меняется местами чтобы сбить сигнатуру как в файле так и в памяти после загрузки). А Post-build step - это соотвественно свой софт но уже на уровне машинных кодов, да типа дизасм и сборка функций - но для этого нужны метки, иначе оч. сложно, графы и т.д. применять - это как велосипед изобретать.
 
К си применимо на стадии Prebuild-Step пермутатор, если шпарить в префиксах функций и глобальных переменных.
Нужно все разбивать на мелкие функции и переменные.
Готов обсудить эти мысли в отдельном треде, если вы не против. Данная тема создана для продажи продукта.

Quake3,​

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


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