не-а. только на базе NT, а CreateRemoteThread() - в Win9x стоит пустышка, т.е. не работает 11.05.01 01:07 Число просмотров: 1002 Автор: kabanchik Статус: Незарегистрированный пользователь
Возможно ли в Win98 создать поток в чужом процессе?
И если возможно, то как?
Я пробовал это сделать с помощью ф-и CreateRemoteThread,
но она возвращает ошибку.
Тогда я пытался присвоить своему процессу, который будет
создавать поток, привилегию SeDebugPrivilege, а уже потом
исспользовать CreateRemoteThread, но ф-я OpenProcessToken, необходимая
для этого, тоже возвращает ошибку.
Или такая схема работает только в WinNT?
> Возможно ли в Win98 создать поток в чужом процессе?
ДА, но не так как ты пытался (все что ты пробовал, это для NT)
а через SetWindowsHookEx() при условии что процесс, куда будет осуществлятся внедрение, имеет очередь сообщений ...
Подробности есть в Д.Рихтере.
[C++] и все таки нет 11.05.01 14:38 Автор: kabanchik Статус: Незарегистрированный пользователь
Речь идет о зоздании потока, а SetWindowsHookEx, как ты сам отметил, работает тоько когда есть обработчик сообщений. Иначе говоря это еще один вариант проецирования. В таком случае можно просто посадить DLL и на этом все закончить.
> Речь идет о зоздании потока, а 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 Статус: Незарегистрированный пользователь