Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Запуск потока в чужом процессе

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Запуск потока в чужом процессе
Имя
Сообщение << Старые топики   Новые топики >>
Запуск потока в чужом процессе - 2012-02-18 21:46:55.310000   
.::.DIMA.::.

Сообщений: 17
Оценки: 0
Присоединился: 2011-09-07 23:58:38.840000
Мне нужно запустить свой поток в чужом порцессе.

Код потока слудующий:

DWORD WINAPI ThreadFunction(LPVOID params) { while(true) { MessageBoxA(NULL, "Hello!", "Hello!", 0); Sleep(1000); } return 0; }
Есть метод, возвращающий ID нужного процесса (метод работает).

И я хочу получить HANDLE:

HANDLE OpenProcess(const char * procName) { DWORD pId = GetProcessID(procName); return OpenProcess(PROCESS_ALL_ACCESS, false, pId); }
На Windows Vista и выше это не работает, т.к. процессы защищены. Генерируется исключение и всё.

На Windows XP исключение не возникает, но HANDLE равен NULL и функция GetLastError возвращает 5 - Acess Denied.

Ошибка, скорее всего в параметре PROCESS_ALL_ACCESS, т.к. если флаг сменить, например, PROCESS_CREATE_PROCESS ошбок не возникает, но и код моей функции не выполняется, видимо, PROCESS_CREATE_PROCESS не позволяет.

Скажите, как сделать, чтобы код выполнился? Может быть, есть аналоги OpenProcess или другие флаги использовать?
Post #: 1
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Запуск потока в чужом процессе







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.