|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Авг 11, 2003 14:35:07 · Поправил: rst Вопрос об инжектировании кода в "чужой" процесс. На winnt вопрос решается с любым процессом ( на который есть права ) через CreateRemoteThread. На Win9X такой радости нет. Но есть вроде бы то, что может работать везде - а именно хуки (но с лимитацией - GUI apps only). Правильны ли мои утверждения : 1) делаем dll которая будет работать с хуками. 2) SetWindowsHookEx 3) SendMessage окну того приложения где нужно выполнить код. Как я понял хук будет вызываться в контексте приложения окну которого было отослано сообщение. Так ли это? |
|
|
Дата: Авг 11, 2003 18:14:113) SendMessage окну того приложения где нужно выполнить код. Нет, не так. После установки хука на любой процесс, к которому этот хук прицепится, будет мапиться код длл, а уже этот код сможет обмениваться с приложением, поставившим хук. Вроде понятно? |
|
|
Дата: Авг 11, 2003 19:15:52 А если я ставлю хуки на все окна? system-wide они называются если не ошибаюсь. где-то нарыл пример использования хуков ( свое в лом писать было ) и там воткнул строчку: //pseudo-code GetModuelFileName (NULL,x); MessageBoxA (x); и получил что вызывается оно в контексте приложения которому принадлежит окно ( т.е. мне возвращался путь к экзешнику того приложения ) . мне не нужно чтоб код обменивался с аппликухой, которая поставила хук. мне нужно, чтоб код мог работать внутри процесса, на который поставили хук. т.е. аналог CreateRemoteThread для win98 с лимитацией - GUI && CurrentDeskTop only. |
|
|
Дата: Авг 11, 2003 19:32:06 Опять велосипед изобретаем? ApiHooks либу by Elicz смотри. |
|
|
Дата: Авг 11, 2003 19:37:37 · Поправил: masquer Он и так работает ВНУТРИ ПРОЦЕССА. Ты ж сам пример привел. Или где? |
|
|
Дата: Авг 13, 2003 19:55:05 [ rst: 3) SendMessage окну того приложения где нужно выполнить код. Как я понял хук будет вызываться в контексте приложения окну которого было отослано сообщение. Так ли это? ] Да. masquer ввел тебя в заблуждение, видимо не верно поняв вопрос. А Dr.Golova верно говорит. |
|
|
Дата: Авг 14, 2003 12:32:12 · Поправил: masquer Хм, Four-F, а где именно я ввел в заблуждение? Может так оно и есть - и я неверно понял вопрос. Рясу и пепел для посыпания головы уже приготовил :) |
|
|
Дата: Авг 14, 2003 13:32:13 [ masquer: ...а где именно я ввел в заблуждение? ] rst спросил: "Как я понял хук будет вызываться в контексте приложения окну которого было отослано сообщение. Так ли это?" masquer ответил: "Нет, не так." А это не верно, т.к. хук будет вызываться именно в контексте приложения окну которого было отослано сообщение. |
|
|
Дата: Авг 14, 2003 14:09:13 Ага, понятно. Виноват, фраза "нет, не так" не нужна была, осталось только добавить, что idHook должен быть WH_GETMESSAGE, например. |
|
|
Дата: Авг 14, 2003 15:09:30 Хм тогда вопрос такой: в MSDN написано. что в SetWindowsHookEx можно так же передать вместо hModule для dllки ещё и ThreadID где хук живет - как я понял в этом случае не будет загрузки и выполнения кода в контексте чужого процесса, а в контексте процесса вызвавшего SetWindowsHook, а конкретно в том потоке, который он указал. Пральна? |
|
|
Дата: Авг 14, 2003 17:23:56 Да. Только некоторые типы хуков не могут быть thread-specific, например WH_KEYBOARD_LL. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.072 |