Сейчас на форуме: CDK123, sashalogout, bartolomeo, artyavmu (+8 невидимых)

 eXeL@B —› Софт, инструменты —› pe obfuscator
Посл.ответ Сообщение


Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 11 ноября 2009 01:59 · Поправил: Oott
· Личное сообщение · #1

Прошу поделится подходящими тулзами.
Из того что попалось это:
PeStubOEP 1.6
PseudoSigner 0.2
Оба ни чё интересного не умеют, кроме всатвки фейковых сигнатур и размещения кода в новой секции.
Может у кого в коллекции и завалялось что интересное. Интересует именно работа уже со скомпилеными файлами(обфускторы исходников не надо).
За ранее спс!
Добавлено
Также будет неплохо, если кто-то поделится интересными методами обфускации(теперь в широком смысле этого слова), где будет применятся какaянить особая техника дзена//



Ранг: 512.7 (!), 360thx
Активность: 0.270.03
Статус: Модератор

Создано: 11 ноября 2009 02:59
· Личное сообщение · #2

D1S1G попробуй
там прикольный about кстати



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 11 ноября 2009 05:55
· Личное сообщение · #3

Классический RPME




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 11 ноября 2009 11:32 · Поправил: Oott
· Личное сообщение · #4

sendersu, ни чем особо тулза не отличается,от тех, что я указывал в шапке. Ну кроме abou
Av0id, Этож тулза для всатвки музычки уже в скомпиленые exe. Добавляет проигрыватель в 300кб, пакует жертву PeCompact'oм и после того как музычка была включена, исполняет наш файл в новом процессе(через CreateProcess)



Ранг: 516.1 (!), 39thx
Активность: 0.280
Статус: Участник

Создано: 11 ноября 2009 12:46
· Личное сообщение · #5

пардон, ошибся цифрой

www.accessroot.com/arteam/site/download.php?view.251



Ранг: 310.8 (мудрец), 29thx
Активность: 0.430
Статус: Участник

Создано: 11 ноября 2009 14:24 · Поправил: tundra37
· Личное сообщение · #6

Обфускация — Википедия
Из этой статьи следует, что любой протектор является обфускатором PE. Так что твой вопрос бессмысленный. Типа "научите меня прозой говорить"
Если же ты понимаешь обфускацию более узко : вставить сложный мусорный код, то на бинарном уровне это сделать проблематично. Есть простая идея : берешь сплайсер и усложняешь его - циклишь с каким-то шагом по всему PE. Готовый такой продукт представляет интерес только для вирусописателей, т.к. любой автомат можно легко "снять" другим автоматом - как защита этот метод не годится.




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 11 ноября 2009 15:13 · Поправил: Oott
· Личное сообщение · #7

Av0id,дык... Oott пишет:
Прошу поделится подходящими тулзами.
Из того что попалось это:
PeStubOEP 1.6
PseudoSigner 0.2

Ещё нашёл G!X Protector, аналогичная тулза.
tundra37, Пойму я чётко выразился, что мне надо и протекторы мне не нужны. Под обфускацией я понимаю методы защиты от анализа. Например защита от сигнатурного анализа и т.д. Сюда конечно можно много чё приплести... Ну я так примерно обозначил рамки, указав примеры с тулзами.
Тут конечно понятно, что уже после компиляции тяжёло, что-то сделать, надо работать с исходным кодом. Но может и есть интерсный софт с интересными методами, не важно на сколько эффективно это будет, интерсны сами методы.
p.s. навеяло прочтение нескольких статей по извращению с кодом



Ранг: 22.9 (новичок), 1thx
Активность: 0.010
Статус: Участник

Создано: 11 ноября 2009 15:19
· Личное сообщение · #8

VMprotect в режиме "Мутация" наверно самое оно будет




Ранг: 533.6 (!), 232thx
Активность: 0.450
Статус: Uploader
retired

Создано: 11 ноября 2009 16:02
· Личное сообщение · #9

морфин тебе в помощь

-----
Лучше быть одиноким, но свободным © $me




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 11 ноября 2009 18:11 · Поправил: Clerk
· Личное сообщение · #10

Oott
Ога, пермутация. Уже сказал - первый такой код это Зомбы двиг, RPME. Но это к обычному коду не подходит, тоесть обычный код который к примеру дельфе генерит, такой не может пермутировать. Есть множество нюансов которые не позволяют большинству писать такой код, это например запрет на использование данных в коде(динамическая генерация), запрет на использование дельтасмещения, на переключение стека, необходимость связки процедур(связка калбэков) и пр. Короче говоря такой тулзы нет и не будет для стандартного кода(.. уровня быдло, который компиль генерит).




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 11 ноября 2009 21:14
· Личное сообщение · #11

K_O_T, ок, гляну что там...
BoRoV пишет:
морфин тебе в помощь

Что?
Clerk, Если ты не о метаморфе от Зомбы, то ссыль на чтиво в студию)))
Быдло код тут во внимание не берётся, извращения все на асме




Ранг: 673.3 (! !), 400thx
Активность: 0.40.31
Статус: Участник
CyberMonk

Создано: 11 ноября 2009 21:38 · Поправил: mak
· Личное сообщение · #12

так если извращения на асме , возьми сделай свой обфускатор , а потом транслируй код и обфусцируй... связка асм асм вообще оригинальна будет....но уже выше сказано много ньюансов это раз во вторых под обфускацией понимается очень много разных вещей и методов , может сначала их изучить а потом подумать что надо конкретно. А потом набросать код. Хороших пермутаторов на паблике нет , хотя 1 есть , и то там просто до ужаса глобальная перестройка пе. Пермутатор писать это жесть , надо быть оч грамотным. Вм как таковая тот же обфускатор ... Цель то какая? Вопрос вообще очень не конкретный. ВМпрот уже указали к томуже.

-----
RE In Progress [!] Coding Hazard [!] Stay Clear of this Cube





Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 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




Ранг: 238.8 (наставник), 67thx
Активность: 0.20
Статус: Участник
CyberHunter

Создано: 12 ноября 2009 00:49
· Личное сообщение · #14

Oott кажется на www.virustech.org была статья про подобные извращения, только он в данный момент недоступен.

-----
Nulla aetas ad discendum sera




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 12 ноября 2009 06:51 · Поправил: Clerk
· Личное сообщение · #15

> Если ты не о метаморфе от Зомбы, то ссыль на чтиво в студию)))
Не про метаморф, а про пермутатор говорил.
> извращения все на асме
Вам повезёт если релоки будут описывать всё. На них основан анализ смещения в инструкциях Lea. Например многие данные должны быть выравнены в памяти, если этого не будет возникнет ошибка, как определить это.. Другая большая проблема это размер таблиц, если производится индексация таблицы и выборка из неё, а таблица расположена в коде, то по содержимому таблицы размер её не найти. Ищется ссылка в коде за пределами талицы и это место рассматривается как её конец. Но если ссылки такой нет, то всё рушиццо и пермутация заканчивается на этом, разумеется можно пихать себе в код метки, либо забить на оптимизацию и копипастить огромные массивы
Вобщем пермутация это сложная задача, скорее всего вам она не нужна. Нормальное решение описано в #6, добавляйте в модуль свои фиксапы какимлибо образом, с последующей корректировкой по ним модуля, частный случай - вынос части функционала из модуля и восстановление его фиксапами, по сути это просто распаковка себя в памяти




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 13 ноября 2009 00:57 · Поправил: Oott
· Личное сообщение · #16

Flint, эть жалко Если вдруг найдётся статья, сообщите спс
Clerk, То очём ты говоришь, а т.е. замене инструкций/кусков кода на аналогичные из таблички рандомно(как я понял) это какбэ и считается метамофом. Насчёт проблем, думаю их можно решить упрощеним метода. Например, что касается 1ой проблемы, после вставки очередной инструкции/куска кода мы последовательно переходим к следующей вставке, куда будет передаваться rva предидущей, относительно чего и будет сделана текущаяя вставка. Дак вот, если вдруг в этой вставке будет инструкции на подобии lea, то небольшой код-релок будет настраивать текущую вставочку на текущую адресацию. Но это тока в теори На деле придётся попотеть. Насчёт второй проблемы, думаю тоже можно решить тем, что таблица будет фиксированой и у ней будет достаточно параметров, для удобной работы с ней.
Речи об автоматизации методов пока нет, для начала просто реализации их в своём коде.
Насчёт распаковки это конечно просто, но вот как ооказалось всё зависит от конкретного случая.
Побаловался с этим, вот простой пример
Code:
  1. 00402000 MOV EDX,[DWORD DS:401020]
  2. 00402006 XOR EBX,EBX
  3. 00402008 PUSH 0
  4. 0040200A PUSH 1v5.00401000                        ; ASCII "Message"
  5. 0040200F MOV ECX,5
  6. 00402014 XOR [DWORD DS:EBX+40201F],EDX
  7. 0040201A ADD EBX,4
  8. 0040201D LOOPD SHORT 1v5.00402014
  9. 0040201F XCHG EAX,EDI
  10. 00402020 SBB BL,AH
  11. 00402022 PUSH EDX
  12. 00402023 ???                                      ; Unknown command
  13. 00402025 INT3
  14. 00402026 AND [DWORD DS:EBX+EBP*4],ESP
  15. 00402029 LEAVE
  16. 0040202A ADC BH,BH
  17. 0040202C ADC BH,CH
  18. 0040202E ADD EDI,83128C32
  19. 00402034 RETN
  20. 00402035 ADD AL,0E2
  21. 00402037 CMC
  22. 00402038 ADD [BYTE DS:EDI],AL
  23. 0040203A MOV AL,22
  24. 0040203C MOV EDI,CC12A612
  25. 00402041 LEAVE
  26. 00402042 JNZ SHORT 1v5.00402057
  27. 00402044 CALL [DWORD DS:EDX]
  28. 00402046 INT3
  29. 00402047 AND EBP,[DWORD DS:EAX+EAX*2-14]
  30. 0040204B PUSH EDX
  31. 0040204C ADD [BYTE DS:EBX+F5E204C3],AL
  32. 00402052 CLD
  33. 00402053 ADC EAX,1v5.00403054
  34.  

ВотЪ
MOV EDX,[DWORD DS:401020] - в edx заносится правильное значение в зависимости от... вот тут много вариантов. И расшифровка(в данном случая простой ксор ) идёт цепочная, т.е. мы видим декрипт только размером на dword*5, а после видно лишь мусор.



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 13 ноября 2009 18:33
· Личное сообщение · #17

Oott
> а т.е. замене инструкций/кусков кода на аналогичные из таблички рандомно(как я понял) это какбэ и считается метамофом.
Это не метаморфизм, а пермутация. Метаморфизм это генерация кода, который будет исполнять процессор из псевдокода(p-code). В этом случае даже дизассемблер длин не нужен. Код просто собирается из структур, его описывающих. Тоесть шаблон для сборки жёстко зашит в коде. Преимущество такой мутации - вне зависимости от поколения, размер кода не увиличивается. При пермутации размер конечного кода постоянно возрастает. Для пермутации никакой псевдокод не нужен, выполняется реверсинг кода, изменение его(перестройка) и компиляция(сборка). По сравнению с пермутацией метаморфизм не эффективен и является неактуальным.
> Например, что касается 1ой проблемы, после вставки очередной инструкции/куска кода мы последовательно переходим к следующей вставке, куда будет передаваться rva предидущей, относительно чего и будет сделана текущаяя вставка.
Это будет работать только для вашего кода, а механизм неполноценный. Главное требование для пермутирующего кода - ни одна его инструкция не должна зависить от положения в графе. Проще говоря смещение между двумя любыми инструкциями не является константой, а изменяется при перестройке кода. У вас и у меня разные конечные цели мутации. Пермутирующий код не может быть самомодифицирующимся/перекрёстным. Точнее может(допустима однократная загрузка и модификация инструкций fsave и fstenv, тут не место углубляться в подробности), но это не тру хак и нежелателен. Так как требуется таблица фиксапов, то она должна быть уникальной для каждого поколения. Для самодостаточного кода это не применимо, так как трушный код имеет модульную архитектуру, а фиксапы(релоки) отдельно к ней не применимы, только когда код находится в модуле, что не позволяет использовать отдельно написанный процедуры, ибо их дальнейший фиксап затруднителен. Короче говоря если вы не виря делаете, то про мутацию можно забыть, она не нужна в крипторах. В любом случае если код не исполняется на виртуальной машине и код только юзермодный(тоеть не навешано сторонних ядерных хэндлеров, которые меняют ход исполнения программы) мусор бесполезен.



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 13 ноября 2009 18:48
· Личное сообщение · #18

>>Метаморфизм это генерация кода, который будет исполнять процессор из псевдокода(p-code).
не обязательно!

-----
My love is very cool girl.




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 13 ноября 2009 19:07
· Личное сообщение · #19

theCollision
Обязательно, не вы и не я эти термины придумали и не нам их менять



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 13 ноября 2009 19:16
· Личное сообщение · #20

Clerk
Метаморфизм, как термин возникло после развития будущего полиморфизма. На тот момент тела вирусов шифровались и к ним прицеплялся декриптор разбавленный. Минус во всем этом это ПОСТОЯНСТВО самого тела! Тогда возникла мысль : "Применить полиморфизм ко всему телу кода" и вот тут-то и возникло - Метаморфизм. Об этом кстати говорит даже всем известный Билли(Bellceby) wasm.ru/print.php?article=mmei . А то что вы говорите как генерацию из пи-кода, это не обязательно. могу с успехом держать и обычный x86 код, хотя это и Брешь в броне метаморфа. Идея метаморфа на абсолютно разных телах, а уж как они получены не важно ;)

-----
My love is very cool girl.




Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 13 ноября 2009 19:38
· Личное сообщение · #21

> генерацию из пи-кода
Я сказал из p-кода. Пикод не причём. А первое это виртуальный код. Он может интерпретироваться, компилироваться и пр. Короче вы путаете всё, а то что по линку фтопку.)



Ранг: 271.5 (наставник), 12thx
Активность: 0.150
Статус: Участник
Packer Reseacher

Создано: 13 ноября 2009 19:55
· Личное сообщение · #22

>>а то что по линку фтопку.)
все что не сказано не вами фтопку ? ;))))

-----
My love is very cool girl.




Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 13 ноября 2009 21:02
· Личное сообщение · #23

Только сегодня, специальное предложение! Могу обоим предложить бан за оффтоп! Кто согласен?



Ранг: 255.8 (наставник), 19thx
Активность: 0.150.01
Статус: Участник
vx

Создано: 13 ноября 2009 21:19 · Поправил: Модератор
· Личное сообщение · #24

Бан на 30 дней.



Ранг: 101.0 (ветеран), 344thx
Активность: 1.150
Статус: Участник

Создано: 13 ноября 2009 23:30
· Личное сообщение · #25

Вот по теме немного статей небольших:

z0mbie.host.sk/permut.html
z0mbie.host.sk/meta1.html
z0mbie.host.sk/metamorf.txt




Ранг: 106.9 (ветеран), 27thx
Активность: 0.080
Статус: Участник

Создано: 14 ноября 2009 00:31
· Личное сообщение · #26

progopis, Полезный материал, cпс!

Существует неплохой метод, использующий перехватку api. Нет ли ни у кого crackme(может не crackme, a просто пример вывода сообщения с прехватом) отсюда www.reversing.dotfix.net/doc/revrsing_api.htm ну или нечто похожего?


 eXeL@B —› Софт, инструменты —› pe obfuscator
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати