![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выгрузка WinApi перехватчика [D7, WinXP]
KygECHuK © (2008-08-26 10:33:00)
Страницы: < 1 2 3 4 5 6 7 8 9 >
занимаюсь автоматизированным тестированием, оформил плагин для перехвата отрисовки текста. он подменяет адресса к функциям в таблице импорта, в моём случае это textOut в GDI32.dll. Всё работает хорошо, вот только что при выгрузке перхватчика с некоторойй вероятностью появлятся ошибка доступа к памяти...
Возможно кто нибудь занимался подомной проблематикой и может что нибудь посоветовать...
evvcom (2008-09-02 10:06:00) [61]где-нибудь дополнительную тестовую запись в лог-файл воткнул с тем же текстом. Текст поменяй в нужном месте и посмотри результат.
Сергей М. (2008-09-02 09:57:00) [62]
> как только они прекращаюся она сам выгружается.... А потом
> снова как только пойдут сообщения она опять загружается
Быть того не может)
> по результатам успешной работы перехватчика
Если он успешно у тебя работает, то это означает только одно - твой модуль присутствуетв целевом АП и никуда он не "выгружался".
Где и какую ты там "выгрузку" узрел - ума не приложу ..
Продолжай разгребать чудеса)
KygECHuK (2008-09-02 09:30:00) [63]
> Как я понял, UnHook ты не вызываешь, но модуль с какого-
> то перепугу выгружается при заведомо работающем процессе
> "жертвы", и при всем этом ты видишь, что модуль присутствует
> в его АП.
нет, все интереснее, даже, можно сказать, лучше чем я предпологал:
библеотека сама внедряется в процесс когда идут сообщения, а как только они прекращаюся она сам выгружается.... А потом снова как только пойдут сообщения она опять загружается и т. д. Поэтому наличие её потстоянного нахождения в АП жертвы я установить не могу. Только по результатам успешной работы перехватчика...
Сергей М. (2008-09-02 08:53:00) [64]
> сйчас он тоже ТОЧНО не останется в АП жертвы после вызова
> UnHook'а.
да я не об этом)
Вот твои слова:
> библиотека почти сразу выгружется
Как я понял, UnHook ты не вызываешь, но модуль с какого-то перепугу выгружается при заведомо работающем процессе "жертвы", и при всем этом ты видишь, что модуль присутствует в его АП.
Вот ведь кудеса-то !) И ты не разобравшись в них отдаешь свое творение в эксплуатацию, пусть и тестовую ..
KygECHuK (2008-09-01 19:33:00) [65]
> да уж куда кж логичней - в протоколе фигурирует выгрузка
> модуля, а модуль при этом как был так и остался в АП)
в прошлой "версии" с CreateRemoteThread так оно и было... все выгражалось.. один раз... последний.. )
Но м сйчас он тоже ТОЧНО не останется в АП жертвы после вызова UnHook'а.
Сергей М. (2008-09-01 19:22:00) [66]
> как это я не разобрался в логике СВОЕГО кода? все логично
да уж куда кж логичней - в протоколе фигурирует выгрузка модуля, а модуль при этом как был так и остался в АП)
KygECHuK (2008-09-01 19:17:00) [67]
> Ты на своей-то разберись, прежде тыкать свой код, в логике
> работы которого ты пока еще ничерта не разобрался, на чужую
> машину)
Это как это я не разобрался в логике СВОЕГО кода? все логично - страдает концепция, то бишь проект.
> А где лог колбэка ?
зачем? Что в нем может быть интересного?
там же вообще ничего интересного не происходит..
ЗЫ
тестеры ошибок не нашли, за что ещё раз спасибо!
Сергей М. (2008-09-01 18:54:00) [68]
> что сдесь такого крамольного?
А где лог колбэка ?
Он ведь д.б. вызван аккурат между загрузкой и выгрузкой хук-модуля ..
> по ним можно отследить работу и на других машинах
Ты на своей-то разберись, прежде тыкать свой код, в логике работы которого ты пока еще ничерта не разобрался, на чужую машину)
KygECHuK (2008-09-01 17:33:00) [69]
> И чем же отладчик не угодил ?
Ничего плохого про него сказать немогу.
Ну пишеться лог:
библеотека в такой то процесс внедренна
...
содержимое перехваченного
...
разные там библиотеки подгруружены в рантайме
...
библеотека в из такого-то процесс извлечена
и что сдесь такого крамольного?
Тем более что по ним можно отследить работу и на других машинах..
Сергей М. (2008-09-01 17:24:00) [70]
> использую логи, ибо при создании серверной части надо было
> отслеживать поведение внедряемой чати в рантайме
И чем же отладчик не угодил ?
KygECHuK (2008-09-01 17:18:00) [71]
> Отладчиком по душе - это ж не серпом по фаберже) ..
главное Ctrl+F2 не нажимать х_х..
вот я и использую логи, ибо при создании серверной части надо было отслеживать поведение внедряемой чати в рантайме.
Ну и получается красиво.. парами... Загрузился-выгрзился, зугрузился- выгрузился....
Сергей М. (2008-09-01 17:12:00) [72]Отладчиком по душе - это ж не серпом по фаберже) ..
KygECHuK (2008-09-01 16:51:00) [73]
> А про возможности встроенного отладчика ты, конечно, ничего
> не слышал ?
Ну, давай, апостол, затронь мою душу... :)
Сергей М. (2008-09-01 16:37:00) [74]
> мну там логирующая процедура
>
А про возможности встроенного отладчика ты, конечно, ничего не слышал ?
KygECHuK (2008-09-01 16:29:00) [75]
> А как ты этот факт определил ?
мну там логирующая процедура
Сергей М. (2008-09-01 16:07:00) [76]
> вызывается DLLEntryPoint с параметром DLL_PROCESS_DETACH
А как ты этот факт определил ?
KygECHuK (2008-09-01 15:58:00) [77]
> Вот именно для этого ты и вызываешь PostThreadMessage(tid,
> 0, 0, 0) сразу после вызова ф-ции, устанавливающей хук.
Я имел ввиду и все остальные сообщения вместе взятые...
> Т.о., если эти условия заведомо не выполняются, но хук-модуль
> с какого-то перепугу исчезает из АП "жертвы", то это уже
> паранойя)
Видимо так... Ладно, отдам сотрудникам на тестирование... если пойдёт без ошибок, то просто забью....
Сергей М. (2008-09-01 15:43:00) [78]
> он библиетеку не сразу подгружает а только когда пока пойдут
> характерные сообщения
Вот именно для этого ты и вызываешь PostThreadMessage(tid, 0, 0, 0) сразу после вызова ф-ции, устанавливающей хук.
> как только они прекращаются библиотека выгружается.
> Но потом опять загружается и выгружает и т.д. пока не извлеч
> хук
При нормальных условиях хук-модуль будет выгружен из АП "жертвы" не ранее явного или неявного вызова UnhookWindowsHoohEx.
Насколько я понимаю, явно ты UnhookWindowsHoohEx не вызываешь, по кр. мере раньше чем тебе станет нененужным этот модуль в АП "жертвы".
А неявный вызов выполняется самой системой при завершении процесса "жертвы".
Т.о., если эти условия заведомо не выполняются, но хук-модуль с какого-то перепугу исчезает из АП "жертвы", то это уже паранойя)
KygECHuK (2008-09-01 15:31:00) [79]
> Под NT можно передавать 0 в кач-ве перевого параметра CallNextHookEx
Вот жеж.. В рот мне ноги ! :(
Сейчас перепроверял - хук стоит.
Вот только он библиетеку не сразу подгружает а только когда пока пойдут характерные сообщения, как только они прекращаются библиотека выгружается.
Но потом опять загружается и выгружает и т.д. пока не извлеч хук.
Получается что всё работает, но вот тока постоянная автоматическая загрузка\выгрузка вызывает у мну сомнение и подозрение... Доктор, это параноя? А?
Сергей М. (2008-09-01 15:20:00) [80]
> HookHandle лежит в расшареном файле
Это неактуально.
Под NT можно передавать 0 в кач-ве перевого параметра CallNextHookEx