-
Хук обычно "вставляют" так как прописал доктор БГ)
А доктор прописал вставлять через SetWindowsHookEx, а вынять, соотв-но, через UnhookWindowsHookEx.
Ты чего мудришь-то ? В реанимацию метишь ?)
-
> А причем здесь тогда хук ?
hook - ловушка - те же яйца тока в профиль
> Ты чего мудришь-то ? В реанимацию метишь ?)
И не думал мутить - казалось так все делают.... :)
-
Раз так, тогда завтра предоставлю код
и попробую "Засуспензить" родные потки при выгрузке
-
> казалось так все делают
Перекрестись на всякслучай, если православный)
За каким лешим, спрашивается, извращаться со стартом удаленного потока, если заведомо известно, что "жертва" является GUI-приложением и внедрение своего кода в его АП достигается документированным и рекомендованным способом, т.е. установкой ловушки при помощи SetWindowsHookEx ?
Прокомментируй свою логику, если она вообще имеется, мне она пока не ясна ..
-
> Прокомментируй свою логику, если она вообще имеется, мне
> она пока не ясна ..
ай ай ай... А ктооо.... А кто это сделал? Ммммммммм...
Меня что предадут анафине? Ну допустим не в курсе я был что документированным и рекомендованным способом можно перехватывать определённые импортированиы функции. SetWindowsHook использовал только для перехвата сообщений окна и то это было давно и недавно, не думаю что моё решение столь опасно... и к тому же вроде работает.. ну почти.. :)
-
*давно и не правда..
-
Ну допустим я использую SetWindowsHookEx, тогда какими будут праметры для перехвата TextOut'а?
-
> допустим я использую SetWindowsHookEx, тогда какими будут
> праметры для перехвата TextOut'а?
>
Какие еще нафих "параметры перехвата" ?
В огороде бузина, а в Киеве дядька)
> не в курсе я был что документированным и рекомендованным
> способом можно перехватывать определённые импортированиы
> функции
Ты вообще слышишь что я говорю ?
Я пока говорю о методах внедрения кода в чужое АП, а не о каком-то там "перехвате".
До "перехвата" в нашем с тобой разговоре еще как до Китая ползком на карачках)
-
> вроде работает.. ну почти.
А чем же ты тогда в этом топике озабочен ?)
Ну подумаешь - в основном работает, но маленько не работает - стоило ли волноваться ?) Нехай себе маленько глючит, глвное чтобы в целом немаленько неглючило)
-
> Я пока говорю о методах внедрения кода в чужое АП, а не
> о каком-то там "перехвате".
Нет, постой паравоз, мне все равно интересно с каками параметрами должна вызваться SetWindowsHookEx, что бы переданная CallBack процедура срабатывала на вызов TextOut ? Вопрос вроде простой..
-
> с каками параметрами должна вызваться SetWindowsHookEx,
> что бы переданная CallBack процедура срабатывала на вызов
> TextOut ?
Ни с какими.
В огороде бузина, а в Киеве дядька.
Мы пока еще говорим только о внедрении кода, а не о каких-то там колбэках и перехватах.
Ты его, свой код то бишь, нахрена внедряешь средствами CreateRemoteThread ?
Почему ты для этой цели не пользуешь SetWindowsHookex ?
Пока ты не прокомментируешь логику принятия своего решения, дальнейшее обсуждение темы и проблемы лишено резона.
-
> Почему ты для этой цели не пользуешь SetWindowsHookex ?
Как этот способ может мне помочь?
Вот листаю докуметнтацию:
"Функция SetWindowsHookEx устанавливает определяемую программой подключаемую процедуру в цепочку hook-точек."
Что общего может иметь цепочка hook-точек и вызов TextOut из какой то библиотеки хоть user32.dll функция DrawText
-
*функцией DrawText
-
> Что общего может иметь цепочка hook-точек и вызов TextOut
> из какой то библиотеки
Ничего общего.
Тебе оно и не надо.
Тебе надо получить управление при загрузке/выгрузке своего модуля в/из АП жертвы.
При получении управления при загрузке ты включаешь свой перехват, при получении управления при выгрузке ты выключаешь свой перехват.
Эту самую загрузку/выгрузку твоего модуля система выполнит самостоятельно, с соблюдением канонов межпоточной синхронизации.
-
А как справоцировать получение управления в таком случае? Как Заставить загружаться модуль? Я не в смысле что это не возможно... просто реально не знаю.
-
> Как Заставить загружаться модуль?
Хук-модуль загрузит сама система при первом же возникновении того события, которое ты укажешь в параметрах вызова SetWindowsHookex.
> как справоцировать получение управления
Обеспечить условия, при которых это событие гарантированно возникнет.
Например, "подписаться" на WH_GETMESSAGE и послать целевому окну WM_USER.
Как только целевая оконная ф-ция выберет любое сообщение из очереди, система немедленно загрузит твой хук-модуль, при этом отработает процедура инициализации, где ты волен выполнять модификацию IAT.
-
Ну а выгрузка, получается, вызовом UnhookWindowsHookEx ?
То есть, получатся, код библиотеки в при инциализации и финализации менять не надо?
И тело CallBack процедуры можно оставить пустым?
-
> выгрузка, получается, вызовом UnhookWindowsHookEx ?
Нет, она тоже не сразу произойдет, только при первом событии подписки.
> код библиотеки в при инциализации и финализации менять не
> надо?
Смотря что за код у тебя там.
> тело CallBack процедуры можно оставить пустым?
Пустым нельзя. Цепочку хуков оборвешь тем самым.
см. CallNextHookEx
-
> Нет, она тоже не сразу произойдет, только при первом событии
> подписки.
Т.е.
ставим WindowsHookEx
посылаем событие подписки
//библиотека загружена
снимаем UnhookWindowsHookEx
посылаем событие подписки
// библиотека выгружена
я правильно понял?
-
> я правильно понял?
Ну вроде того)
Только вот события не "посылают", они происходят или возникают.