Re[5]: Взаимодействие с dll, внедренными в "чужие" консольны
От: alexey_ma Израиль  
Дата: 24.12.09 08:34
Оценка:
Здравствуйте, Unsacrificed, Вы писали:

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


_>>Даже в этом случае не обязательно общаться с хуком посредством сообщений, организуйте другой IPC.


U>А вот тут можно по-подробней??? Загрузил dll, использовал одну из её функций для глобального хука. Если я использую хук WH_GETMESSAGE, то послав сообщение я, по сути, запуская как раз свою функцию в чужом контексте. Можно пример с указанием тип хука и как заставить этот хук инициирует IPC и будет его слушать???

Создайте в хуке свой собственный поток, который стоит и ждет например поименнованного эвента, в Вашем процессе делаете SetEvent этому самому эвенту, хуковый поток просыпаеться и вызывает нужную Вам функцию в чужом контексте и опять уходит в ожидание. Если нужны какие-то дополнительные параметры для выполнения функции в хуковом потоке, то можете записать их в поименованный мап файл перед тем как сделать SetEvent, соответственно хуковый поток проснувшись по эвенту сначала читает нужные ему данные из мап-файла а потом выполняет функцию в чужом контексте, и если нужно передать какие либо результаты выполнения обратно в Ваш процесс, то в тот же мап эти результаты пишет.

_>>Кроме того, на мой взгляд более правильно мониторить создание процессов/потоков/окон и внедряться только туда куда действительно нужно.


U>Внедрять нужно везде, где пользователь может что-то ввести с клавы — мне видиться мониторить в этом случае не самым удобным вариантом.

Чего Вы все-таки делаете (в двух словах) ?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.