Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
И у меня вопрос тоже! 27.10.01 18:35 Число просмотров: 834
Автор: dron Статус: Незарегистрированный пользователь
|
> > > Открываю процесс, выделяю в нем память, пишу туда > код > > > потока, запускаю поток функцией > CreateRemoteThread. > > При > > > попытке вызвать из кода любую API функцию > приложение, > > в > > > которое я влезаю вылетает. Как получить адреса > API > > функций, > > > чтобы их вызывать? > > > > Технология описана в последнем издании Рихтера, > > действительно невозможно вызывать API функции в твоей > > ситуации, поскольку вызовы импортируемых функций при > > статическом связывании осуществляются через шлюзы > таблицы > > импорта. Однако этот метод можно использовать для > загрузки > > своей DLL в чужой процесс, для этого в > CreateRemoteThread > > нужно передать в качестве функции потока абсолютный > адрес > > LoadLibraryA(LoadLibraryW) полученный вызовом > > GetProcAddress, > Надеясь на то, что никто не создал библиотеку, вызвавшую > перемещение библиотеки с этой функцией? > Или есть абсолютная гарантия, что адрес LoadLibrary у всех > один? > > > в качестве параметра LoadLibrary нужно > > передать адрес строки с именем DLL в адресном > пространстве > > процесса-мишени. Выделить память для этой строки в > чужом > > адресном пространстве можно используя VirtuaAllocEx, > > записать туда имя DLL c помощью WriteProcessMemory. > Когда > > внедренная DLL будет загружена и вызвана DllMain c > > уведомлением DLL_PROCESS_ATTACH уже можешь делать > делать > > любые API вызовы. > > Могу предложить альтернативный метод создания потока в > чужом процессе (работает не во всех случаях, но зато на > всех виндах): Ставим хук на сообщение, посылаем сообщение, > в обработчике создаём поток, хук снимаем. Сам так делал.
Если можно, пожайлуста, поподробнее о последнем способе! А тоя под 2000 процесс скрыл, теперь надо под 98, а я точно не знаю какой метод выбрать. Так что если есть предложения буду очень благодарен!
|
|
|