Сейчас на форуме: vsv1, Alf (+4 невидимых)

 eXeL@B —› Вопросы новичков —› обфускация контрол флоу
Посл.ответ Сообщение

Ранг: 0.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 12 октября 2015 16:23
· Личное сообщение · #1

Приветствую. Есть функция которую пропустили через обфускатор исходного кода и потом собрали. После снятия антидебагов, антиотладок итп процедура представляет из себя что похожее на [img]http://imgur.com/t475r8n[/img] . Вопрос : как бы автоматически разобрать этот завал. На текущий момент я её вырезал целиком, сделал компилируемый асм, написал маленькую программу обкладку . Дебажу без проблем, понимаю как работает , однако хочется красоты.



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

Создано: 12 октября 2015 17:06 · Поправил: dosprog
· Личное сообщение · #2

Автоматически не получится по-любому.

--Добавлено--
К следующему посту:

F_a_u_s_t пишет:
Всего лишь цена вопроса.


)) Согласен. Но жизнь коротка.



Ранг: 0.0 (гость)
Активность: 0.250
Статус: Участник

Создано: 13 октября 2015 00:53
· Личное сообщение · #3

dosprog пишет: Автоматически не получится по-любому.

Всего лишь цена вопроса.
В данном случае графы решают, перевести в псевдокод и уже работать с ним, проблемы могут возникнуть с регистрами, но можно запилить DBI тул и собрать адреса прыжков.
Проблема тут только одна и заключается она в поиске границ.



Ранг: 0.7 (гость)
Активность: 0=0
Статус: Участник

Создано: 13 октября 2015 09:14
· Личное сообщение · #4

Оу
А чего так пессимистично? Я конечно туповат в этих вопросах, однако пара идей есть даже у меня. Немного подумываю пропустить все это хозяйство через оптимизатор компилятора. Очень смотрю в сторону LLVM , но пока не придумал как перевести АСМ в LLVM IR. Хотя да, это более человечное описание того что сказал F_a_u_s_t. Ну и задумка вторая. Более теоретическая. Во всех этих обфускаторах достаточно ограниченый набор паттернов . Если человек их вполне способен распознать, то не лучше ли их запихать в свой собственный черный ящик и добавить линейности, а там уж и до оптимизации недалеко. Я чего собственно озадачился этой проблемой. Все эти обфускаторы контрол флоу дают весьма серъезный пенальти в производительности, для меня оказалось критично. Криворукий програмист какой-то. При вычислении 100 значений все хорошо. При вычислении 10000 серьезно лагает из-за этих бесконечных While. Я честно говоря уже переписал процедуру. Но на будущее для себя хотел бы разобраться полнее.




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 13 октября 2015 09:31
· Личное сообщение · #5

все зависит от типа обфускации
если простая, то компишь код с оптимизацией ключей в компилере, и потом в хексрейс заганяешь
если сложная, в хексрейс и дальше головой и руками чистить


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


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