Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Выгрузка WinApi перехватчика [D7, WinXP]


Страницы:   1 2 3 4 5 6 7 8 9

KygECHuK ©   (2008-08-26 10:33:00) 

занимаюсь автоматизированным тестированием, оформил плагин для перехвата отрисовки текста. он подменяет адресса к функциям в таблице импорта, в моём случае это 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


Страницы:   1 2 3 4 5 6 7 8 9

Наверх

Титульная страница Поиск, карта сайта Написать письмо