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

Морферы на уровне исходного кода.

TDL

HDD-drive
Пользователь
Регистрация
30.05.2020
Сообщения
46
Реакции
38
Всем привет. Заинтересовали морферы на уровне сорцов, но в продакшене ничего умного, кроме как разбития символов/чисел на множество значений и мелочного преобразования циклов - я не нашел. Ни у кого нет исходников подобного?
 
Пожалуйста, обратите внимание, что пользователь заблокирован

Это хоть и не совсем морфер, но будет полезно.

Я пробовал с нуля писать, пиздец какой гемор)) Изначально писал на Си чистом, не строя полноценное AST, упёрся в свои же костыли. Так же начинал писать на голанге с использвоание go-yaml, что-то забросил. Интерес пропал.

Советую посмотреть в сторону clang-api, от него уже отталкиваться
 
Всем привет. Заинтересовали морферы на уровне сорцов, но в продакшене ничего умного, кроме как разбития символов/чисел на множество значений и мелочного преобразования циклов - я не нашел. Ни у кого нет исходников подобного?
Приведи пример умного тз для морфера. Ну конкретного алгоритма по шагам. Как ты это видишь? Сам морфер реализуется достаточно не сложно. Простыми словами это обход AST, реализуется паттерном visitor, у тебя срабатывает коллбек каждый раз, когда происходит посещение ноды определенного типа, и для каждой ноды происходит преобразование определенным образом по определенному алгоритму. Но все нюансы как раз в алгоритмах преобразования нод.
 

Это хоть и не совсем морфер, но будет полезно.

Я пробовал с нуля писать, пиздец какой гемор)) Изначально писал на Си чистом, не строя полноценное AST, упёрся в свои же костыли. Так же начинал писать на голанге с использвоание go-yaml, что-то забросил. Интерес пропал.

Советую посмотреть в сторону clang-api, от него уже отталкиваться
LLVM - это понятно, но там достаточно высокий порог вхождения, и это уже обфускатор на уровне полноценного плагина для компилятора. В контексте данного топика интересует именно морф исходных кодов.

Приведи пример умного тз для морфера

Преобразование циклов/Строк/Чисел, сбитие графа. Ну и самая важная часть - сбитие цепочки WINAPI вызовов, на которую может быть выставлен детект. Вот тут самая сложная часть, нужно уметь грамотно миксовать апи и строить трастовые для АВ цепочки.
 
лучше просто криптовать строки с уникальным ключом, там никаких сложностей нет и для этого даже AST не нужен. разбитие на множество значений съест оптимизация. а отключать оптимизатор не очень хорошая затея. ну а морфинг цепочки вызовов можно сделать даже не на уровне сорцов, а на уровне твоего засранца, используя в нём динамическую генерацию ROP.

исходниками своего морфера навряд ли кто-то поделится. можешь покопаться в https://github.com/yck1509/ConfuserEx - он для дотнета. морфит бинарь, но сам понимаешь, что голый бинарь дотнета это почти что сорец :)
если решишь писать свой морфер - бери любой скриптовый язык, ибо для работы с исходными текстами низкий уровень ни в каком месте не нужен.
 
LLVM - это понятно, но там достаточно высокий порог вхождения, и это уже обфускатор на уровне полноценного плагина для компилятора. В контексте данного топика интересует именно морф исходных кодов.



Преобразование циклов/Строк/Чисел, сбитие графа. Ну и самая важная часть - сбитие цепочки WINAPI вызовов, на которую может быть выставлен детект. Вот тут самая сложная часть, нужно уметь грамотно миксовать апи и строить трастовые для АВ цепочки.
навскидку: генерируем рандомные числа, что бы в итоге получалось 1089 (посмотри математические загадки), потом с помощью преобразований этого числа, вызывай по хешу получившемуся из этого числа winapi функции из пеба. это как один из вариантов обойти анализ, операций много, и слишком затратные, антивирус легко проскакивает генерацию хеша, функции не прогужаются, получается что прогамма выходит со сплошними ошибками, доведи до ума, это помогает как раз в рантайме.
как бы глупо не звучало, но это работает
 


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