Сейчас на форуме: (+6 невидимых) |
eXeL@B —› Протекторы —› Themida - Обфускация и эмуляция API функций |
Посл.ответ | Сообщение |
|
Создано: 23 мая 2016 23:07 · Поправил: Boostyq · Личное сообщение · #1 Всем привет, изучаю продукты, упакованные Themida и уже второй раз сталкиваюсь с такой штуковиной: Вызовы функций вида E8 ? ? ? ? 90 уходят за пределы модуля, а там полная шляпа: Code:
...или еще пару десятков прыжков, в итоге приходящих на оригинальную API функцию Вначале я все обрабатывала руками, но на второй день потеряла текстовик с записями и надоело держать компьютер включенным, чтобы адреса не сбились ----------------------------------------------------------------- Вообщем, пишу анализатор, что уже готово: -Поиск всех таких вызовов по маске E8 ? ? ? ? 90 -Следование по всем редиректам Code:
-Дохождение до оригинального вызова: Code:
-Анализ pushad/popad pushfd/popfd - они просто сокращаются, ибо взятое равно положенному -Сохранение важных инструкций, таких как: Code:
-Сокращение некоторых инструкций, Code:
-Генерация примерного (недостаточный анализ) листинга выполнения: Code:
Вообще, я думаю, это не обязательно. т.к. вся это по сути эмулированные функции ----------------------------------------------------------------- Что хочу сделать еще: -Дополнить анализ (!Если вы что-то об этом знаете, обязательно напишите тут, я добавлю, спасибо) -Исправить ошибки, такие как зависания и т.п. -Возможно, создание дампа, вписывание таблицы импорта и замена вызовов для удобного изучения -Если есть интерес и я таки допилю утиль, то могу выложить -П.С. я знаю что пишу велосипед (видела исходники healiat, но у меня он не работал) 0695_24.05.2016_EXELAB.rU.tgz - thapi.log ----- В облачке многоточия |
|
Создано: 23 мая 2016 23:22 · Личное сообщение · #2 |
|
Создано: 23 мая 2016 23:26 · Поправил: Boostyq · Личное сообщение · #3 |
|
Создано: 23 мая 2016 23:31 · Личное сообщение · #4 |
|
Создано: 24 мая 2016 01:26 · Личное сообщение · #5 Hellspawn пишет: Boostyq странно, обычно все работало, там XP желательна для анпака, ну ок если так. инструмент лишним точно не будет, если будет работать а движок для дебага какой или просто скан памяти процесса? Да, я слышала, что XP желателен, мб из-за того что Dll-ка, а не Exe, там либо не видит библиотеку, либо детектит Использую: -Небольшую библиотеку для работы с памятью - написала сама, я наверное единственная, кто пишет код на русском -Библиотеку disasm от Oleh Yuschuk - она довольно старая (2001 год) ----- В облачке многоточия |
|
Создано: 24 мая 2016 05:44 · Личное сообщение · #6 |
Ранг: 281.8 (наставник), 272thx Активность: 0.25↘0.01 Статус: Участник Destroyer of protectors |
Создано: 24 мая 2016 07:26 · Личное сообщение · #7 |
|
Создано: 24 мая 2016 09:16 · Личное сообщение · #8 Boostyq пишет: правда она нахер не нужна Нет.Девушка так писать не будет, а вот быдлосамка (клитор-переросток) с раздутым как жопа чсв да. У баб оно как - подрезала солюшн и расплыла со всех щелей от радости.Да и порог выхода из девушек(хотя этот порог нарушается после всеми известного процесса) - это овер 25, ибо уже старухи.Ну да ладно сексизма. Вообще, чаще всего фемида васянски навешана, импорт не портится и на точку входа выйти можно тривиальными путями без плясок с одноногими сектантами, а что касательно свистопердящих прыжков из одной жопы в другую, то этим славятся все говнопротекторы от замшелых недосраньфорсов до всяких гвардпротекторов.Скидывал мне жидяра один мультиплатформенный мессенджер, покрытый этим слоем фемидного говна и я не встретил никаких трудностей ни с распаковкой, ни с запуском под мною патченной олей без плюгов. Обфускацией это назвать язык не поворачивается.Это скорее дрисня на постном масле ----- TEST YOUR MIGHT |
|
Создано: 24 мая 2016 09:41 · Поправил: Rainbow · Личное сообщение · #9 Boostyq пишет: MOV EDI,EDI (правда она нахер не нужна, просто 2 байтовый nop, мб для хот-патча) MOV EBP,ESP Если мне не изменяет память, это слямзеное OEP API. Если это так, то тут пропущена инструкция PUSH EBP. Что касается mov edi, edi - где-то читал, что мелкомягкие решили таким способом организовывать апишные прологи, для того что бы было удобно хукать при помощи безусловного джампа, устанавливаемого на EP функи. Инструкция mov edi, edi внедрена специально. Она занимает 2 байта и не несет в себе никакой нагрузки. Если типичный минимальный пролог функции для фрейма стека на базе EBP-регистра формируется при помощи 2 инструкций (PUSH EBP + MOV EBP, ESP), это занимает 3 байта, а с mov edi, edi - уже 5, что идеально подходит под 5-байтовый JMP XXXXXXXX. Ну типа не надо использовать дизассемблер для вычисления длин инструкций, что бы перенести n цельных команд, занятых джампом в трамплин, а сразу брать и хукать, заранее зная, что там будет mov edi, edi (2) + push ebp (1) + mov ebp, esp (2). | Сообщение посчитали полезным: Boostyq |
|
Создано: 24 мая 2016 10:36 · Поправил: Boostyq · Личное сообщение · #10 unknownproject пишет: Нет.Девушка так писать не будет, а вот быдлосамка (клитор-переросток) с раздутым как жопа чсв да. У баб оно как - подрезала солюшн и расплыла со всех щелей от радости.Да и порог выхода из девушек(хотя этот порог нарушается после всеми известного процесса) - это овер 25, ибо уже старухи.Ну да ладно сексизма. Вообще, чаще всего фемида васянски навешана, импорт не портится и на точку входа выйти можно тривиальными путями без плясок с одноногими сектантами, а что касательно свистопердящих прыжков из одной жопы в другую, то этим славятся все говнопротекторы от замшелых недосраньфорсов до всяких гвардпротекторов.Скидывал мне жидяра один мультиплатформенный мессенджер, покрытый этим слоем фемидного говна и я не встретил никаких трудностей ни с распаковкой, ни с запуском под мною патченной олей без плюгов. Обфускацией это назвать язык не поворачивается.Это скорее дрисня на постном масле Я тебя услышала и ты меня расстроил ._. Знаешь, ты такой умный, я тебе завидую... Я тоже хочу кинуть монету два раза, чтобы мне выпала решка и вломить заключение, что как монету не кинуть это все "как ты говориш дрисня" и всегда выпадает одно и тоже, другого быть не может - защита вообще дно ----------------------------------------------------------------- А если серьезно, ты идиот? Темида имеет гибкие настройки. Конечно, бывает, что там только внешняя упаковка, например в играх, где нельзя выполнять долгие операции во время рендеринга - тебе такое и попалось. Но! Что ты будешь делать, если встретишь виртуальную машину? Функция уходит в непонятный цикл и куча мусора в секциях? А если точка вм обфусцирована? Вместо вызовов апи выход за пределы модуля, что сделаешь? Сдампишь, пофиксишь импорт и полезешь искать скрипты, а руками сможешь распаковать? Я смогу, потому что стараюсь подучить, чтобы получить опыт, потому что опыт - самое важное в распаковке... ----------------------------------------------------------------- Ты мне не нравишься, нужно быть добрее к людям -_- Rainbow спасибо, еще туда так же можно вставить EB ??, тоже для хука ----- В облачке многоточия | Сообщение посчитали полезным: plutos |
|
Создано: 24 мая 2016 10:47 · Личное сообщение · #11 |
|
Создано: 24 мая 2016 10:48 · Личное сообщение · #12 |
|
Создано: 24 мая 2016 11:06 · Личное сообщение · #13 Bronco пишет: относительно чего? короткий или длинный понятно, но всё равно прикольно, запомню. Вот, если нужно, я написала функцию, которая выдает адрес куда идет call/jmp Code:
----- В облачке многоточия |
|
Создано: 26 мая 2016 13:57 · Поправил: UniSoft · Личное сообщение · #14 Rainbow пишет: Инструкция mov edi, edi внедрена специально. Она занимает 2 байта и не несет в себе никакой нагрузки. Если типичный минимальный пролог функции для фрейма стека на базе EBP-регистра формируется при помощи 2 инструкций (PUSH EBP + MOV EBP, ESP), это занимает 3 байта, а с mov edi, edi - уже 5, что идеально подходит под 5-байтовый JMP XXXXXXXX. Вообще-то это несколько не так... технология hotpach... да в этой технологии не требуется дизассемблер длин... а 2-х байтовая инструкция mov edi, edi специально зарезервирована для короткого перехода на 5 байт назад, которые зарезервированы уже для длинного перехода (куда угодно в x86) (+-2Gb в x64) | Сообщение посчитали полезным: Boostyq, Rainbow |
eXeL@B —› Протекторы —› Themida - Обфускация и эмуляция API функций |