Подскажите пожалуйста как можно отладить длл, инжекнутую в чужое АП? Я использую SetWindowHookEx для глобального хука. Нужно отладить несколько функций прямо внутри целевого процесса.
Пытаюсь в VC 2008 Express (C++) поступить следующим образом: жму Debug->Attach to process, выбираю нужный процесс из списка и... судя по всему длл туда не подгружается! Ставлю несколько брейкпоинтов на дллмэйн + прописал туда мессаджбокс, итог — на брейкапоинтах не останавливается, месседжбокс не выскакивает. Processs explorer от Марка Русиновича не находит библиотеку в ОП.
Здравствуйте, ambel-vlad, Вы писали:
AV>Здравствуйте, hdb, Вы писали:
hdb>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?
AV>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.
Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!
Здравствуйте, 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 запускаешь?
Здравствуйте, <Аноним>, Вы писали:
hdb>>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?
AV>>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.
hdb>>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!
AV>>А при отладке ты свой exe запускаешь?
А>нет просто жму аттач ту процесс
Ну дык. А кто ж вызовет SetWindowHookEx в таком случае?
Здравствуйте, ambel-vlad, Вы писали:
AV>Здравствуйте, <Аноним>, Вы писали:
hdb>>>>>>В чем может быть проблема и как мне всетаки заставить дебаггер ВС работать?
AV>>>>>Похоже хук ты не так устанавливаешь. Покажи свой вызов SetWindowHookEx.
hdb>>>>Неет, с хуком все ок, библиотека инжектится хуком нормально и функционирует как надо(вызываю хук из основного ехе), но если пробовать отладить ее дебаггером студии (debug->attach to process) то почему-то в АП целевого процесса она не внедряется! Полюбому должен выполниться код DllMain, но он не исполняется!
AV>>>А при отладке ты свой exe запускаешь?
А>>нет просто жму аттач ту процесс
AV>Ну дык. А кто ж вызовет SetWindowHookEx в таком случае?
вот почитал все стало ясно) Удаляю свой экспресс)
Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)
Здравствуйте, 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)
hdb>>Насколько я понимаю механизм такой, я запускаю модуль с SetWindowsHookEx, потом аттачусь к интересующему процессу и студия позволяет ставить бряки и мониторить код используя файл символов длл. Примерно так?)
AV>Да. Кстати, а что такое "модуль с SetWindowsHookEx"? Твой exe?
Да.
AV>А можешь сначала приаттачиться к нужному процессу, а потом запустить свой exe, который повесит хук. Если тебе надо что-то проверить с самого начала (например в той же DllMain)
Студия упорно не хочет создавать файл с символами для релиз версии! Хотя в Project Properties->General->Debug Infromation Format стоит Program Database (/Zi). Похоже вся проблема в этом!
Здравствуйте, 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.