· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.WIN32 —› Внедрение в процессы приложений запакованных UPX

Посл.отвђт Сообщенiе


Дата: Июл 20, 2004 19:47:19

Обнаружил интересный эффект -- при внедрении в процеес subj и последующем перехвате функций перехвата не происходит, хотя с точки зрения перехватчика всё идёт нормально. Для внедрения используется способ описанный Рихтером -- перезапись IAT. Сходу возникает два вопроса --
1. возможно-ли доработать алгоритм перехвата так чтобы устранить проблему ?
2. возможно-ли переделать UPX так чтобы вызываемые функции перехватывались правильно ?
В принципе оба варианта годятся.
Если кто может помочь -- буду очень признателен.


Дата: Июл 20, 2004 20:07:23

QuiteTrack
А вдруг прога вызывает функции не через импорт, а, скажем, через GetProcAddress?


Дата: Июл 20, 2004 21:36:23

Quantum
Не имеет значения. GetProcAddress перехватывается и возвращает адрес перехватчика. Почитай Рихтера.


Дата: Июл 20, 2004 21:47:01

QuiteTrack
Да, но вероятно она перехватывается тоже через IAT (Рихтера у меня нет, но читал статью на васме), а не в kernel'е. Я к тому, что существует масса способов обломать все эти методы перехвата и они активно используются в различных защитах. А UPX тут не причём. Для проверки рекомендую распаковать прогу и убедиться в том, что распакованный вариант также ускальзывает от перехватчика. В противном случае следует искать баг в самом перехватчике.


Дата: Июл 20, 2004 22:28:02 · Поправил: Asterix

Дык нет там IAT после UPX'а, в том месте по крайней мере что в заголовке прописан(вернее там IAT запакованного файла), скорее всего UPX сам импорт настраивает, я правда не помню сейчас точно как там есть на самом деле, мож Dr.Golova заглянет - поправит если я наплёл ;-)


Дата: Июл 21, 2004 00:41:24

Asterix
Точно! Он помещает в IAT только библиотеки с одной функцией, а настоящая IAT пакуется.


Дата: Июл 21, 2004 10:58:25 · Поправил: QuiteTrack

Quantum
А дальше? Хук подвешивается к процессу при вызове MsgProc, а к этому времени UPX уже распаковал правильную IAT. Или он распаковывает её в другое место ?

Баги все отловил, тестировал успешно на своих прогах и на чужих. Всё ок пока не начал паковать UPX-ом.


Дата: Июл 21, 2004 19:25:35

> Точно! Он помещает в IAT только библиотеки с одной функцией, а настоящая IAT пакуется.

Именно! Так что нужно перехватывать GetModuleHandle/GetProcAddress и через них насовать хуков в оригинальный IAT проги, когда декомпрессор будет связывать оригинальную таблицу импорта. А то на что показывает импорт из заголовка это фуфло - тока чтобы библиотеки нужные проге подгрузили при старте процесса.


Дата: Июл 24, 2004 21:36:58 · Поправил: QuiteTrack

Dr.Golova

„Так что нужно перехватывать GetModuleHandle/GetProcAddress и через них насовать хуков в оригинальный IAT проги“

Как получить оригинальный IAT ?

То что ты описываешь не сработает -- UPX связывает адреса ДО внедрения в процесс. Похоже единственный вариант -- точно знать где хрантся рабочая таблица адресов и подменять адреса в ней.


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.086