![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| insidex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
Проблема в следующем: есть приложение, в котором определена int test(...) .
У приложения 2 независимых DLL, в каждом из которых стоит хук на test(...) . Если одновременно загрузить 2 DLL, то 100% происходит seg-fault. Хотелось бы иметь возможность либо как-то снимать хук в соседнем DLL, либо еще что-нибудь хитрое... |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: нет Всего: 162 |
insidex, и ни одной строчки кода...
|
|||
|
||||
| insidex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
да мне бы теории, строчек там на 10^5 без преувеличения, уже мозг сломалллл |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: 1 Всего: 23 |
Хуки на то и ставятся, чтобы их не обойти.
|
|||
|
||||
| asd |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
insidex,
если длл твои - перепиши. Если падает - это от кривых хуков. С нормальными хуками ничего падать не будет. Для того чтобы сбросить хуки, нужно знать каким способом они поставленны. Хуки на то и ставятся, чтобы их не обойти. большинство хуков обходятся или снимаются элементарными способами. Приведите метод, который по вашему мнению не обойти. Это сообщение отредактировал(а) asd - 15.2.2008, 08:31 |
|||
|
||||
| insidex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
платформа Zend (php)
1ая dll - ZendOptimizer - хукает zend_compile_file(); 2 - мое расширение - также хучит zend_compile_file(); Облом происходит в процессе обработки данных в моем хуке. Я понятия не имею, что там в закрытом zendoptimizer делается с их хуком. У меня желание прихлопнуть вражескую dll, отрубить её вообще нах от процесса во время исполнения моего кода. Думаю это возможно...как бы только |
|||
|
||||
| asd |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
Каким способом ставит хуки вражеская dll? Импорт,экспорт, инлайн? Или может FreeLibrary можно? Или ret n в начало вражеского перехватчика впихнуть.
Это сообщение отредактировал(а) asd - 15.2.2008, 10:27 |
|||
|
||||
| insidex |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
этого я не знаю, ибо zendoptimizer.dll - проприетарная & закрытая либа у меня my_extension.dll :
|
||||
|
|||||
| asd |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 89 Регистрация: 25.6.2006 Репутация: 1 Всего: 1 |
insidex,
Не нужно иметь код вражеской длл, чтобы узнать способ постановки хука. Либо подменяются указатели на ф-ию в импортах всех прочих модулей, либо подменяется указатель на ф-ию в экспорте длл, в которой находится перехватываемая ф-ия, либо это подмена куска кода самой ф-ии. (Извраты на вроде выставления страницам памяти неисполняемых атрибутов, и перехват потом исключений, думаю законопослушный софт юзать не будет). Всё это можно увидеть в дебагере. Первое обходится использованием динамического импорта, второе и 3-е чтением оригинала длл с диска и восстановлением порченных кусков перехваченных ф-ий и таблицы экспорта. Из твоего куска кода совершеннор не понятно каким образом ставится твой хук. Это сообщение отредактировал(а) asd - 15.2.2008, 10:55 |
|||
|
||||
| insidex |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 46 Регистрация: 23.11.2006 Репутация: нет Всего: нет |
asd,
Спасибо, буду грызть маны дальше... |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |