Отладка hooked dll в VC 2008 C++
От: hdb  
Дата: 11.12.09 09:24
Оценка:
Добрый день.

Подскажите пожалуйста как можно отладить длл, инжекнутую в чужое АП? Я использую SetWindowHookEx для глобального хука. Нужно отладить несколько функций прямо внутри целевого процесса.

Пытаюсь в VC 2008 Express (C++) поступить следующим образом: жму Debug->Attach to process, выбираю нужный процесс из списка и... судя по всему длл туда не подгружается! Ставлю несколько брейкпоинтов на дллмэйн + прописал туда мессаджбокс, итог — на брейкапоинтах не останавливается, месседжбокс не выскакивает. Processs explorer от Марка Русиновича не находит библиотеку в ОП.

BOOL WINAPI DllMain ()
{
MessageBoxA(NULL,"OK",NULL,0);
}

В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?

Благодарю за ответы!
Re: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 11.12.09 10:03
Оценка:
Здравствуйте, hdb, Вы писали:

hdb>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: Отладка hooked dll в VC 2008 C++
От: hdb  
Дата: 11.12.09 11:51
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Здравствуйте, hdb, Вы писали:


hdb>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!
Re[3]: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 11.12.09 14:58
Оценка:
Здравствуйте, hdb, Вы писали:

hdb>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


hdb>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!


А при отладке ты свой exe запускаешь?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: Отладка hooked dll в VC 2008 C++
От: Аноним  
Дата: 11.12.09 15:37
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Здравствуйте, hdb, Вы писали:


hdb>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


hdb>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!


AV>А при отладке ты свой exe запускаешь?


нет просто жму аттач ту процесс
Re[5]: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 11.12.09 15:43
Оценка:
Здравствуйте, <Аноним>, Вы писали:

hdb>>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


hdb>>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!


AV>>А при отладке ты свой exe запускаешь?


А>нет просто жму аттач ту процесс


Ну дык. А кто ж вызовет SetWindowHookEx в таком случае?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Отладка hooked dll в VC 2008 C++
От: hdb  
Дата: 11.12.09 16:06
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

AV>Здравствуйте, <Аноним>, Вы писали:


hdb>>>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>>>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


hdb>>>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!


AV>>>А при отладке ты свой exe запускаешь?


А>>нет просто жму аттач ту процесс


AV>Ну дык. А кто ж вызовет SetWindowHookEx в таком случае?


я кажется неправильно понимал механизм работы аттач ту процесс..
http://www.blackwasp.co.uk/DebuggerAttach.aspx

вот почитал все стало ясно) Удаляю свой экспресс)
Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)
Re[7]: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 11.12.09 16:25
Оценка:
Здравствуйте, hdb, Вы писали:

hdb>>>>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?


AV>>>>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.


hdb>>>>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!


AV>>>>А при отладке ты свой exe запускаешь?


А>>>нет просто жму аттач ту процесс


AV>>Ну дык. А кто ж вызовет SetWindowHookEx в таком случае?


hdb>я кажется неправильно понимал механизм работы аттач ту процесс..

hdb>http://www.blackwasp.co.uk/DebuggerAttach.aspx

hdb>вот почитал все стало ясно) Удаляю свой экспресс)


Не спеши.

hdb>Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)


Да. Кстати, а что такое "модуль с SetWindowsHookEx"? Твой exe?

А можешь сначала приаттачиться к нужному процессу, а потом запустить свой exe, который повесит хук. Если тебе надо что-то проверить с самого начала (например в той же DllMain)
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Отладка hooked dll в VC 2008 C++
От: hdb  
Дата: 11.12.09 17:45
Оценка:
hdb>>Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)

AV>Да. Кстати, а что такое "модуль с SetWindowsHookEx"? Твой exe?


Да.

AV>А можешь сначала приаттачиться к нужному процессу, а потом запустить свой exe, который повесит хук. Если тебе надо что-то проверить с самого начала (например в той же DllMain)


Студия упорно не хочет создавать файл с символами для релиз версии! Хотя в Project Properties->General->Debug Infromation Format стоит Program Database (/Zi). Похоже вся проблема в этом!
Re[9]: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 11.12.09 17:52
Оценка:
Здравствуйте, hdb, Вы писали:

hdb>>>Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)


AV>>Да. Кстати, а что такое "модуль с SetWindowsHookEx"? Твой exe?


hdb>Да.


ОК. В этой части, я так понимаю, мы разобрались.

AV>>А можешь сначала приаттачиться к нужному процессу, а потом запустить свой exe, который повесит хук. Если тебе надо что-то проверить с самого начала (например в той же DllMain)


hdb>Студия упорно не хочет создавать файл с символами для релиз версии! Хотя в Project Properties->General->Debug Infromation Format стоит Program Database (/Zi). Похоже вся проблема в этом!


А что стоит в Project Properties->Linker->Debugging? В частности в Generate Debug Info.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: Отладка hooked dll в VC 2008 C++
От: hdb  
Дата: 12.12.09 09:03
Оценка:
Благодарю за помощь, то что нужно заработало)
Re[11]: Отладка hooked dll в VC 2008 C++
От: ambel-vlad Беларусь  
Дата: 12.12.09 15:24
Оценка:
Здравствуйте, hdb, Вы писали:

hdb>Благодарю за помощь, то что нужно заработало)


Всегда пожалуйста.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.