Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
| | |
[C++] YA-YA :)) 11.05.01 17:22 Число просмотров: 854
Автор: pZero Статус: Незарегистрированный пользователь
|
> Речь идет о зоздании потока, а SetWindowsHookEx, как ты сам > отметил, работает тоько когда есть обработчик сообщений. > Иначе говоря это еще один вариант проецирования. В таком > случае можно просто посадить DLL и на этом все закончить.
А немного подумать головой ? :)))
HINT: Вызов CreateThread() внутри DllMain() и мы имеем поток в
контексте процесса ... весьма бородатый прием.
|
<programming>
|
[C++] Возможно ли в Win98 создать поток в чужом процессе? 10.05.01 20:29
Автор: Vital Статус: Незарегистрированный пользователь
|
Возможно ли в Win98 создать поток в чужом процессе?
И если возможно, то как?
Я пробовал это сделать с помощью ф-и CreateRemoteThread,
но она возвращает ошибку.
Тогда я пытался присвоить своему процессу, который будет
создавать поток, привилегию SeDebugPrivilege, а уже потом
исспользовать CreateRemoteThread, но ф-я OpenProcessToken, необходимая
для этого, тоже возвращает ошибку.
Или такая схема работает только в WinNT?
Спасибо Vital.
|
|
[C++] ДА 11.05.01 13:09
Автор: pZero Статус: Незарегистрированный пользователь
|
> Возможно ли в Win98 создать поток в чужом процессе?
ДА, но не так как ты пытался (все что ты пробовал, это для NT)
а через SetWindowsHookEx() при условии что процесс, куда будет осуществлятся внедрение, имеет очередь сообщений ...
Подробности есть в Д.Рихтере.
|
| |
[C++] и все таки нет 11.05.01 14:38
Автор: kabanchik Статус: Незарегистрированный пользователь
|
Речь идет о зоздании потока, а SetWindowsHookEx, как ты сам отметил, работает тоько когда есть обработчик сообщений. Иначе говоря это еще один вариант проецирования. В таком случае можно просто посадить DLL и на этом все закончить.
|
| | |
[C++] YA-YA :)) 11.05.01 17:22
Автор: pZero Статус: Незарегистрированный пользователь
|
> Речь идет о зоздании потока, а SetWindowsHookEx, как ты сам > отметил, работает тоько когда есть обработчик сообщений. > Иначе говоря это еще один вариант проецирования. В таком > случае можно просто посадить DLL и на этом все закончить.
А немного подумать головой ? :)))
HINT: Вызов CreateThread() внутри DllMain() и мы имеем поток в
контексте процесса ... весьма бородатый прием.
|
| | | |
[C++] Последовательность действий и результат 12.05.01 04:56
Автор: Vital Статус: Незарегистрированный пользователь
|
> HINT: Вызов CreateThread() внутри DllMain() и мы имеем > поток в > контексте процесса ... весьма бородатый прием.
1)Запускаем программу
2)Она ставит ловушку в DLL
3)Когда чужой процесс использует библиотеку создаем в нем свой поток
4)Снимаем ловушку
5)Завершаем свою программу
6)Созданный поток остается работать в адрессном пространстве чужого процесса?
Последовательность действий такова?
Vital.
|
| | | | |
[C++] Последовательность действий и результат 14.05.01 12:22
Автор: pZero Статус: Незарегистрированный пользователь
|
> > HINT: Вызов CreateThread() внутри DllMain() и мы имеем > > поток в > > контексте процесса ... весьма бородатый прием. > > 1)Запускаем программу > 2)Она ставит ловушку в DLL >
3)Когда чужой процесс использует библиотеку создаем в нем
Для этого надо послать BROADCAST всем окнам системы - только
после этого произойдет загрузка обработчика ....
> свой поток > 4)Снимаем ловушку
Этого делать не нужно ... потому как это вызовет выгрузку кода DLL
> 5)Завершаем свою программу > 6)Созданный поток остается работать в адрессном > пространстве чужого процесса?
Да ...
> > Последовательность действий такова?
Ты в Рихтера всеже загляни, там есть пример кода ...
> > Vital.
|
|
не-а. только на базе NT, а CreateRemoteThread() - в Win9x стоит пустышка, т.е. не работает 11.05.01 01:07
Автор: kabanchik Статус: Незарегистрированный пользователь
|
|
|
|