Всем привет. Заинтересовали морферы на уровне сорцов, но в продакшене ничего умного, кроме как разбития символов/чисел на множество значений и мелочного преобразования циклов - я не нашел. Ни у кого нет исходников подобного?
Приведи пример умного тз для морфера. Ну конкретного алгоритма по шагам. Как ты это видишь? Сам морфер реализуется достаточно не сложно. Простыми словами это обход AST, реализуется паттерном visitor, у тебя срабатывает коллбек каждый раз, когда происходит посещение ноды определенного типа, и для каждой ноды происходит преобразование определенным образом по определенному алгоритму. Но все нюансы как раз в алгоритмах преобразования нод.Всем привет. Заинтересовали морферы на уровне сорцов, но в продакшене ничего умного, кроме как разбития символов/чисел на множество значений и мелочного преобразования циклов - я не нашел. Ни у кого нет исходников подобного?
LLVM - это понятно, но там достаточно высокий порог вхождения, и это уже обфускатор на уровне полноценного плагина для компилятора. В контексте данного топика интересует именно морф исходных кодов.![]()
GitHub - obfuscator-llvm/obfuscator at llvm-4.0
Contribute to obfuscator-llvm/obfuscator development by creating an account on GitHub.github.com
Это хоть и не совсем морфер, но будет полезно.
Я пробовал с нуля писать, пиздец какой гемор)) Изначально писал на Си чистом, не строя полноценное AST, упёрся в свои же костыли. Так же начинал писать на голанге с использвоание go-yaml, что-то забросил. Интерес пропал.
Советую посмотреть в сторону clang-api, от него уже отталкиваться
Приведи пример умного тз для морфера
навскидку: генерируем рандомные числа, что бы в итоге получалось 1089 (посмотри математические загадки), потом с помощью преобразований этого числа, вызывай по хешу получившемуся из этого числа winapi функции из пеба. это как один из вариантов обойти анализ, операций много, и слишком затратные, антивирус легко проскакивает генерацию хеша, функции не прогужаются, получается что прогамма выходит со сплошними ошибками, доведи до ума, это помогает как раз в рантайме.LLVM - это понятно, но там достаточно высокий порог вхождения, и это уже обфускатор на уровне полноценного плагина для компилятора. В контексте данного топика интересует именно морф исходных кодов.
Преобразование циклов/Строк/Чисел, сбитие графа. Ну и самая важная часть - сбитие цепочки WINAPI вызовов, на которую может быть выставлен детект. Вот тут самая сложная часть, нужно уметь грамотно миксовать апи и строить трастовые для АВ цепочки.