![]() |
eXeL@B —› Вопросы новичков —› обфускация контрол флоу |
Посл.ответ | Сообщение |
|
Создано: 12 октября 2015 16:23 · Личное сообщение · #1 Приветствую. Есть функция которую пропустили через обфускатор исходного кода и потом собрали. После снятия антидебагов, антиотладок итп процедура представляет из себя что похожее на [img]http://imgur.com/t475r8n[/img] . Вопрос : как бы автоматически разобрать этот завал. На текущий момент я её вырезал целиком, сделал компилируемый асм, написал маленькую программу обкладку . Дебажу без проблем, понимаю как работает , однако хочется красоты. ![]() |
|
Создано: 12 октября 2015 17:06 · Поправил: dosprog · Личное сообщение · #2 |
|
Создано: 13 октября 2015 00:53 · Личное сообщение · #3 dosprog пишет: Автоматически не получится по-любому. Всего лишь цена вопроса. ![]() В данном случае графы решают, перевести в псевдокод и уже работать с ним, проблемы могут возникнуть с регистрами, но можно запилить DBI тул и собрать адреса прыжков. Проблема тут только одна и заключается она в поиске границ. ![]() |
|
Создано: 13 октября 2015 09:14 · Личное сообщение · #4 Оу ![]() А чего так пессимистично? Я конечно туповат в этих вопросах, однако пара идей есть даже у меня. Немного подумываю пропустить все это хозяйство через оптимизатор компилятора. Очень смотрю в сторону LLVM , но пока не придумал как перевести АСМ в LLVM IR. Хотя да, это более человечное описание того что сказал F_a_u_s_t. Ну и задумка вторая. Более теоретическая. Во всех этих обфускаторах достаточно ограниченый набор паттернов . Если человек их вполне способен распознать, то не лучше ли их запихать в свой собственный черный ящик и добавить линейности, а там уж и до оптимизации недалеко. Я чего собственно озадачился этой проблемой. Все эти обфускаторы контрол флоу дают весьма серъезный пенальти в производительности, для меня оказалось критично. Криворукий програмист какой-то. При вычислении 100 значений все хорошо. При вычислении 10000 серьезно лагает из-за этих бесконечных While. Я честно говоря уже переписал процедуру. Но на будущее для себя хотел бы разобраться полнее. ![]() |
|
Создано: 13 октября 2015 09:31 · Личное сообщение · #5 |
![]() |
eXeL@B —› Вопросы новичков —› обфускация контрол флоу |