![]() |
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]() ![]() ![]() |
|
MANAB |
|
||||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
Хочу сделать так, чтобы моя программа могла отловить факт нажатий кнопок другой конкретной уже запущенной программы.
Делаю длл, в ней вызываю функцию, которая находит окно нужной мне программы, получает ее ThreadId и ставит хук:
Проверял g_hhook - не NULL. Обработчик
эмоций никаких не проявил. Как я ни извращался, какие idHook ни ставил - молчит как партизан. ![]() Где я ступил? ![]() Это сообщение отредактировал(а) MANAB - 15.11.2010, 03:31 |
||||
|
|||||
ASMatic |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 254 Регистрация: 14.3.2009 Репутация: 1 Всего: 1 |
видимо не задумывались - PokerStars вполне возможно защиту сделала от таких как вы
![]() попробуйте свой код натравить на блокнот... если действительно защита, скорей всего от хуков - тогда вам надо будет подгрузить длл в покерстарз и там уже сабклассить ихнее окно. я бы так изначально делал, темболее если на локальном компе - AppInitDlls неплохо помогает вместе с проверкой в дллмеин имени процесса. |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
Я тоже сначала так подумал, но перед тем как создать тему быстренько создал форму с парой кнопочек и обработчиками для них, чтобы проверить. Тоже не отлавливает.
![]() Это сообщение отредактировал(а) MANAB - 15.11.2010, 11:19 |
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
надеюсь весь код который ты предоставил находиться в длл.......
После установки хука глянь процесс-експлорером или отладчиком в процессе присутствует длл?????? А вообще насколько помню в хук надо хандл процесса кидать ......... Посмотри функцию опенпроцес(на английском). dwThreadID = GetWindowThreadProcessId( g_hPokerMainWnd, &dwProcessID ); Далее опен процесс с флагом для всего и вот это dwProcessID..... и хандл в хук..... Добавлено через 1 минуту и 45 секунд Да и что ты мучаешься перебирая все окна findwindow на что тебе..... |
|||
|
||||
GremlinProg |
|
||||||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
нет - идентификатор потока:
g_hMod - HMODULE загруженной библиотеки?
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
||||||
|
|||||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Приношу извинения я еще не выспался.... |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
g_hMod - да, это хендл загруженной библиотеки:
И да, весь код находится внутри Dll, я просто вызываю в своей программе одну функцию Init, которая все это счастье запускает. |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а если сменить тип хука, например на WH_GETMESSAGE?
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
Проверил, присутствует. Добавлено через 1 минуту и 56 секунд Вообще все idHook проверил, ничего. Добавлено через 7 минут и 42 секунды Поставил глобальный хук (без dwThreadID) - вроде реагирует. Вроде - потому что скажем для мышки - не все нажатия почему-то перехватываются... Попробую на другом компе с XP, может это все из-за того, что у меня Windows 7 64-битная. |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
Хм... Там тоже самое.
Что странно, глобальный хук вроде ставлю на клавиатуру:
а нажатия клавиш не отлавливаются ![]() |
|||
|
||||
GremlinProg |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2706 Регистрация: 9.8.2005 Где: Тюмень Репутация: 99 Всего: 106 |
а хук 32-х, или приложение 32-х, а хук 64-х? вобщем битность у приемника и перхватчика должна совпадать, у нас уже была дискуссия на эту тему Добавлено через 5 минут и 8 секунд
-------------------- "Гений всегда разумнее, чем умнее. Ум — это машина, разум — водитель этой машины." |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
И хук и приложение 32х битные. На Windows XP тоже самое все, проверял.
|
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Странооо ........ Воббще должно может не тот HWND находить поставь логирование.........
И попробуй findwindow...... Вообще я использую замену Windowproc ..... Injekt.... Если что кодом могу помоч..... Добавлено @ 20:45 WH_KEYBOARD Может работать в своем процессе............. Это сообщение отредактировал(а) bass - 15.11.2010, 20:46 |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
bass, если можешь помочь с инъекцией - буду очень признателен. Я читал про нее, но еще не разобрался. Знаю только что там 3 способа есть, и один из них через хуки.
|
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Лови рабочий проект на билдоре.......
унит1 сам исходный текст Требуемая библиотека псапи.... Если что либу для билдора могу кинуть...... Смотри у меня инжект вызывает еще и функцию... Сначало енжектит потом идет вызов функции и выход из потока если он вернеться....... Без функции процес рухнет........ проджект 1 готовый ехе но может библиотек нехватить не помню как компилятор выставил(Если что кину).... И если будешь на студии компелить поставь однобайтовое выравнивание иначе процес жертва ружиться.... Вопросы возниктнут звони -)))))) Добавлено через 8 минут и 49 секунд Способов больше ....... Вот какие я знаю....... 1. как я скинул через кретеремотетшреад. 2. через реестр только длл погрузиться во все процессы где есть библиотека усер32. 3ю через хуки. 4ю написание подложки со всеми экспортируемыми функциями, и переименование длл. 5ю изменение кода родной длл чтоб подгружалась твоя даже проги спец есть(встречал щас не вспомню как назваються)... Но я делаю через отладчик... Раньше через сенд мессге можно было но сеЙчас лавочку прикрыли..... с вм_таймер ...... ![]() В винлогон тоже через реестр можно попасть..... А чтоб подменить винпрок используй setwindowlong насколько помню...... С уважением Игорь. Присоединённый файл ( Кол-во скачиваний: 5 ) ![]() |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
bass, спасибо, буду ковырять.
Да, и я разобрался, почему сообщения не отлавливались. Надо было запускать программу с правами администратора ![]() Работать-то работает, а вот брейками теперь не попользуешься( Интересно, есть ли возможность их программно установить при запуске программы? Это сообщение отредактировал(а) MANAB - 18.11.2010, 02:56 |
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Не понял чем там у тебя не получается пользоваться.....
Но насколько я понял тебе нежно узнать запускается сторонние приложение или нет????? Если перехватывать запуск процесса на ранней стадии..... То писать драйвер.... А так периодически переберать имена процессов ....
инклуде псапи.... |
|||
|
||||
MANAB |
|
|||
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 17.5.2009 Где: Беларусь, Минск Репутация: нет Всего: нет |
Нет
![]() Я хочу отследить нажатие определенной кнопки определенного окна. Поставил хук, который это делает (как уже писал выше, запускать экзешник, который подгружает хук из длл, нужно с правами администратора, именно поэтому у меня не работало). Неудобство заключается лишь с в том, что в теперь в вижуал студии брейкпоинты на хуках не поставишь, чтобы это дело отладить, посмотреть где там и чего( |
|||
|
||||
bass |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 315 Регистрация: 5.8.2007 Репутация: 2 Всего: 2 |
Я олькой пользуюсь......
Бреками редко.... А вообще это все в контексте другова процесса происходит........ Щас сам мучаюсь с хуками и подменой винпрок..... |
|||
|
||||
xvr |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 7046 Регистрация: 28.8.2007 Где: Дублин, Ирландия Репутация: 40 Всего: 223 |
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "C/C++: Системное программирование и WinAPI" | |
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |