Сейчас на форуме: CDK123, sashalogout, bartolomeo, artyavmu (+8 невидимых) |
eXeL@B —› Софт, инструменты —› pe obfuscator |
Посл.ответ | Сообщение |
|
Создано: 11 ноября 2009 01:59 · Поправил: Oott · Личное сообщение · #1 Прошу поделится подходящими тулзами. Из того что попалось это: PeStubOEP 1.6 PseudoSigner 0.2 Оба ни чё интересного не умеют, кроме всатвки фейковых сигнатур и размещения кода в новой секции. Может у кого в коллекции и завалялось что интересное. Интересует именно работа уже со скомпилеными файлами(обфускторы исходников не надо). За ранее спс! Добавлено Также будет неплохо, если кто-то поделится интересными методами обфускации(теперь в широком смысле этого слова), где будет применятся какaянить особая техника дзена// |
|
Создано: 11 ноября 2009 02:59 · Личное сообщение · #2 |
|
Создано: 11 ноября 2009 05:55 · Личное сообщение · #3 |
|
Создано: 11 ноября 2009 11:32 · Поправил: Oott · Личное сообщение · #4 sendersu, ни чем особо тулза не отличается,от тех, что я указывал в шапке. Ну кроме abou Av0id, Этож тулза для всатвки музычки уже в скомпиленые exe. Добавляет проигрыватель в 300кб, пакует жертву PeCompact'oм и после того как музычка была включена, исполняет наш файл в новом процессе(через CreateProcess) |
|
Создано: 11 ноября 2009 12:46 · Личное сообщение · #5 |
|
Создано: 11 ноября 2009 14:24 · Поправил: tundra37 · Личное сообщение · #6 Из этой статьи следует, что любой протектор является обфускатором PE. Так что твой вопрос бессмысленный. Типа "научите меня прозой говорить" Если же ты понимаешь обфускацию более узко : вставить сложный мусорный код, то на бинарном уровне это сделать проблематично. Есть простая идея : берешь сплайсер и усложняешь его - циклишь с каким-то шагом по всему PE. Готовый такой продукт представляет интерес только для вирусописателей, т.к. любой автомат можно легко "снять" другим автоматом - как защита этот метод не годится. |
|
Создано: 11 ноября 2009 15:13 · Поправил: Oott · Личное сообщение · #7 Av0id,дык... Oott пишет: Прошу поделится подходящими тулзами. Из того что попалось это: PeStubOEP 1.6 PseudoSigner 0.2 Ещё нашёл G!X Protector, аналогичная тулза. tundra37, Пойму я чётко выразился, что мне надо и протекторы мне не нужны. Под обфускацией я понимаю методы защиты от анализа. Например защита от сигнатурного анализа и т.д. Сюда конечно можно много чё приплести... Ну я так примерно обозначил рамки, указав примеры с тулзами. Тут конечно понятно, что уже после компиляции тяжёло, что-то сделать, надо работать с исходным кодом. Но может и есть интерсный софт с интересными методами, не важно на сколько эффективно это будет, интерсны сами методы. p.s. навеяло прочтение нескольких статей по извращению с кодом |
|
Создано: 11 ноября 2009 15:19 · Личное сообщение · #8 |
|
Создано: 11 ноября 2009 16:02 · Личное сообщение · #9 |
|
Создано: 11 ноября 2009 18:11 · Поправил: Clerk · Личное сообщение · #10 Oott Ога, пермутация. Уже сказал - первый такой код это Зомбы двиг, RPME. Но это к обычному коду не подходит, тоесть обычный код который к примеру дельфе генерит, такой не может пермутировать. Есть множество нюансов которые не позволяют большинству писать такой код, это например запрет на использование данных в коде(динамическая генерация), запрет на использование дельтасмещения, на переключение стека, необходимость связки процедур(связка калбэков) и пр. Короче говоря такой тулзы нет и не будет для стандартного кода(.. уровня быдло, который компиль генерит). |
|
Создано: 11 ноября 2009 21:14 · Личное сообщение · #11 |
|
Создано: 11 ноября 2009 21:38 · Поправил: mak · Личное сообщение · #12 так если извращения на асме , возьми сделай свой обфускатор , а потом транслируй код и обфусцируй... связка асм асм вообще оригинальна будет....но уже выше сказано много ньюансов это раз во вторых под обфускацией понимается очень много разных вещей и методов , может сначала их изучить а потом подумать что надо конкретно. А потом набросать код. Хороших пермутаторов на паблике нет , хотя 1 есть , и то там просто до ужаса глобальная перестройка пе. Пермутатор писать это жесть , надо быть оч грамотным. Вм как таковая тот же обфускатор ... Цель то какая? Вопрос вообще очень не конкретный. ВМпрот уже указали к томуже. ----- RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube |
|
Создано: 12 ноября 2009 00:05 · Поправил: Oott · Личное сообщение · #13 mak, mak пишет: очень много разных вещей и методов , может сначала их изучить Вот она цель раз. mak пишет: подумать что надо конкретно. Вот она цель два. mak пишет: А потом набросать код. Вот она цель три. Прочитал тут одну статейку от касперыча, нашёл пару прикольных методов, быстренько для проверки реализовал один(боян конечно же). Вот тут набросал очень простой пример, чтобы ощутить эффект - реверсить надо в статике(иначе, кто не знал о такой штуке, примерчик не понравится). Начинайте вот отсюда: .code:004021CF push offset dword_4010C1 Это для тех кому времени жалко . 71f0_11.11.2009_CRACKLAB.rU.tgz - bugag.EXE |
|
Создано: 12 ноября 2009 00:49 · Личное сообщение · #14 |
|
Создано: 12 ноября 2009 06:51 · Поправил: Clerk · Личное сообщение · #15 > Если ты не о метаморфе от Зомбы, то ссыль на чтиво в студию))) Не про метаморф, а про пермутатор говорил. > извращения все на асме Вам повезёт если релоки будут описывать всё. На них основан анализ смещения в инструкциях Lea. Например многие данные должны быть выравнены в памяти, если этого не будет возникнет ошибка, как определить это.. Другая большая проблема это размер таблиц, если производится индексация таблицы и выборка из неё, а таблица расположена в коде, то по содержимому таблицы размер её не найти. Ищется ссылка в коде за пределами талицы и это место рассматривается как её конец. Но если ссылки такой нет, то всё рушиццо и пермутация заканчивается на этом, разумеется можно пихать себе в код метки, либо забить на оптимизацию и копипастить огромные массивы Вобщем пермутация это сложная задача, скорее всего вам она не нужна. Нормальное решение описано в #6, добавляйте в модуль свои фиксапы какимлибо образом, с последующей корректировкой по ним модуля, частный случай - вынос части функционала из модуля и восстановление его фиксапами, по сути это просто распаковка себя в памяти |
|
Создано: 13 ноября 2009 00:57 · Поправил: Oott · Личное сообщение · #16 Flint, эть жалко Если вдруг найдётся статья, сообщите спс Clerk, То очём ты говоришь, а т.е. замене инструкций/кусков кода на аналогичные из таблички рандомно(как я понял) это какбэ и считается метамофом. Насчёт проблем, думаю их можно решить упрощеним метода. Например, что касается 1ой проблемы, после вставки очередной инструкции/куска кода мы последовательно переходим к следующей вставке, куда будет передаваться rva предидущей, относительно чего и будет сделана текущаяя вставка. Дак вот, если вдруг в этой вставке будет инструкции на подобии lea, то небольшой код-релок будет настраивать текущую вставочку на текущую адресацию. Но это тока в теори На деле придётся попотеть. Насчёт второй проблемы, думаю тоже можно решить тем, что таблица будет фиксированой и у ней будет достаточно параметров, для удобной работы с ней. Речи об автоматизации методов пока нет, для начала просто реализации их в своём коде. Насчёт распаковки это конечно просто, но вот как ооказалось всё зависит от конкретного случая. Побаловался с этим, вот простой пример Code:
ВотЪ MOV EDX,[DWORD DS:401020] - в edx заносится правильное значение в зависимости от... вот тут много вариантов. И расшифровка(в данном случая простой ксор ) идёт цепочная, т.е. мы видим декрипт только размером на dword*5, а после видно лишь мусор. |
|
Создано: 13 ноября 2009 18:33 · Личное сообщение · #17 Oott > а т.е. замене инструкций/кусков кода на аналогичные из таблички рандомно(как я понял) это какбэ и считается метамофом. Это не метаморфизм, а пермутация. Метаморфизм это генерация кода, который будет исполнять процессор из псевдокода(p-code). В этом случае даже дизассемблер длин не нужен. Код просто собирается из структур, его описывающих. Тоесть шаблон для сборки жёстко зашит в коде. Преимущество такой мутации - вне зависимости от поколения, размер кода не увиличивается. При пермутации размер конечного кода постоянно возрастает. Для пермутации никакой псевдокод не нужен, выполняется реверсинг кода, изменение его(перестройка) и компиляция(сборка). По сравнению с пермутацией метаморфизм не эффективен и является неактуальным. > Например, что касается 1ой проблемы, после вставки очередной инструкции/куска кода мы последовательно переходим к следующей вставке, куда будет передаваться rva предидущей, относительно чего и будет сделана текущаяя вставка. Это будет работать только для вашего кода, а механизм неполноценный. Главное требование для пермутирующего кода - ни одна его инструкция не должна зависить от положения в графе. Проще говоря смещение между двумя любыми инструкциями не является константой, а изменяется при перестройке кода. У вас и у меня разные конечные цели мутации. Пермутирующий код не может быть самомодифицирующимся/перекрёстным. Точнее может(допустима однократная загрузка и модификация инструкций fsave и fstenv, тут не место углубляться в подробности), но это не тру хак и нежелателен. Так как требуется таблица фиксапов, то она должна быть уникальной для каждого поколения. Для самодостаточного кода это не применимо, так как трушный код имеет модульную архитектуру, а фиксапы(релоки) отдельно к ней не применимы, только когда код находится в модуле, что не позволяет использовать отдельно написанный процедуры, ибо их дальнейший фиксап затруднителен. Короче говоря если вы не виря делаете, то про мутацию можно забыть, она не нужна в крипторах. В любом случае если код не исполняется на виртуальной машине и код только юзермодный(тоеть не навешано сторонних ядерных хэндлеров, которые меняют ход исполнения программы) мусор бесполезен. |
|
Создано: 13 ноября 2009 18:48 · Личное сообщение · #18 |
|
Создано: 13 ноября 2009 19:07 · Личное сообщение · #19 |
|
Создано: 13 ноября 2009 19:16 · Личное сообщение · #20 Clerk Метаморфизм, как термин возникло после развития будущего полиморфизма. На тот момент тела вирусов шифровались и к ним прицеплялся декриптор разбавленный. Минус во всем этом это ПОСТОЯНСТВО самого тела! Тогда возникла мысль : "Применить полиморфизм ко всему телу кода" и вот тут-то и возникло - Метаморфизм. Об этом кстати говорит даже всем известный Билли(Bellceby) wasm.ru/print.php?article=mmei . А то что вы говорите как генерацию из пи-кода, это не обязательно. могу с успехом держать и обычный x86 код, хотя это и Брешь в броне метаморфа. Идея метаморфа на абсолютно разных телах, а уж как они получены не важно ;) ----- My love is very cool girl. |
|
Создано: 13 ноября 2009 19:38 · Личное сообщение · #21 |
|
Создано: 13 ноября 2009 19:55 · Личное сообщение · #22 |
|
Создано: 13 ноября 2009 21:02 · Личное сообщение · #23 |
|
Создано: 13 ноября 2009 21:19 · Поправил: Модератор · Личное сообщение · #24 |
|
Создано: 13 ноября 2009 23:30 · Личное сообщение · #25 |
|
Создано: 14 ноября 2009 00:31 · Личное сообщение · #26 |
eXeL@B —› Софт, инструменты —› pe obfuscator |