Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Вниз

Как реализацовать CreateRemoteThread для Win9x?   Найти похожие ветки 

 
ByteButcher   (2002-08-08 17:29) [0]

Если у кого есть какие идейки - отзовитесь!!!


 
Ученик   (2002-08-08 18:00) [1]

Тут было предложение ставить hook на WH_GETMESSAGE


 
ByteButcher   (2002-08-08 19:02) [2]

При этом будет внедряться DLL.
Можно конечно скопировать в эту DLL код потока и выполнить его.
Но это всё немного не то.
А ещё есть какие-нибудь предложения?

И вопрос навстречу - а как можно узнать Handle потока(Thread) (именно Handle, а не ID) (надо как-то извратиться и вытащить это из недокументированных внутренних структур Win9x - но где? как? и что?)
Тогда можно было-бы SuspendThread - SetContext - ResumeThread и т.д. но для этого нужен HANDLE!!!


 
Ученик   (2002-08-08 21:04) [3]

Странно, в MSDN написано, что CreateRemoteThread поддерживается с Windows 98, но и в Kernel32.dll от Windows 95 OSR эта функция тоже есть (правда может быть stub)


 
bytebutcher   (2002-08-08 22:53) [4]

> Ученик
Надо внимательней читать MSDN!!!!!!
В Вынь9x эта функция только объявлена, но не определена, т.е. она ничего не делает!


 
Ученик   (2002-08-08 23:24) [5]

>bytebutcher

Куда уж внимательней :), хотя вполне возможно ничего не делает (stub).

QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 98 or later.
Windows CE: Unsupported.
Header: Declared in winbase.h.
Import Library: Use kernel32.lib.



 
Almaz   (2002-08-09 00:26) [6]


> Ученик © (08.08.02 23:24)

У вас какая версия MSDN ? У меня вот в MSDN написано для CreateRemoteThread:

Requirements
Windows NT/2000: Requires Windows NT 3.1 or later.
Windows 95/98: Unsupported.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.



> ByteButcher © (08.08.02 19:02)
> И вопрос навстречу - а как можно узнать Handle потока(Thread)
> (именно Handle, а не ID) (надо как-то извратиться и вытащить
> это из недокументированных внутренних структур Win9x -
> но где? как? и что?)
> Тогда можно было-бы SuspendThread - SetContext - ResumeThread
> и т.д. но для этого нужен HANDLE!!!

Handle по ID можно узнать с помощью Tool Help функций (CreateToolhelp32Snapshot и т.д.)
Но, IMHO, внедрять поток лучще через HOOK. Только код потока располагать не в DLL hook"a, а в другой DLL, которую функция hook"a будет загружать в адресное пространство процесса-жертвы. После этого hook может быть снят и установившая его программа завершена, а код потока будет продолжать выполняться.

Удачи.


 
Ученик   (2002-08-09 08:44) [7]

>Almaz
MSDN был от Visual Studio 6.0, хотя в MSDN 2000 и на msdn.microsost.com написано Unsupported :)

>Только код потока располагать не в DLL hook"a, а в другой DLL
Система выгружает DLL после снятия hookа ?


 
Ученик   (2002-08-09 09:13) [8]

>Almaz
Вопрос видоизменяется, что происходит с отображением DLL (в которой hook) для других процессов системы после ее выгрузки ?


 
bytebutcher   (2002-08-09 09:42) [9]

>Almaz
В том то и дело, что ToolHelp функции выдают ThreadID, а не Handle.
Понимаешь для процессов существует функция OpenProcess, а для Thread такого нет - в этом то и проблема.

P.S. Про Hooks всё уже известно и понятно - там несколько вариантом реализации, но это не важно.
>All
Посмотрите на www.madshi.net библиотеку madRemote - может у кого какие идеи возникнут?


 
watcher   (2002-08-09 11:38) [10]

OpenThread
The OpenThread function opens an existing thread object.

HANDLE OpenThread(
DWORD dwDesiredAccess, // access right
BOOL bInheritHandle, // handle inheritance option
DWORD dwThreadId // thread identifier
);

Requirements
Windows NT/2000 or later: Requires Windows 2000 or later.
Windows 95/98/Me: Requires Windows Me.
Header: Declared in Winbase.h; include Windows.h.
Library: Use Kernel32.lib.


 
Ученик   (2002-08-09 11:50) [11]

Случайно никто не в курсе, что выполняется здесь (Dede) ?

function SharedMem9x_Alloc (size: System.Cardinal): System.Pointer;
stdcall;
begin
JMP DWORD PTR [_Nn_53],NEAR
end;

function SharedMem9x_Free (ptr: System.Pointer): System.LongBool; stdcall;
begin
JMP DWORD PTR [_Nn_52],NEAR
end;


 
Ученик   (2002-08-09 12:08) [12]

>bytebutcher © (09.08.02 09:42)
Есть подозрение на вызов CreateThread :)


 
Almaz   (2002-08-10 03:30) [13]


> Ученик © (09.08.02 08:44)
> Система выгружает DLL после снятия hookа ?

DLL с кодом hook"a будет выгружена. А вот DLL, загруженные hook"ом из адресного пространства чужого процесса будут выгружены только после завершения этого процесса.

Удачи.



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.10.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
3-56018
kserg@ukr.net
2002-09-26 15:20
2002.10.17
как организовать многопользовательский доступ к таблице ACCESSa.


14-56340
Nikolas ShmuS
2002-09-25 23:52
2002.10.17
КиШ


6-56259
Werewolfru
2002-08-14 12:04
2002.10.17
Скачать файл


7-56384
_landy
2002-08-12 15:06
2002.10.17
Multicast


1-56168
Брат
2002-10-07 12:53
2002.10.17
Минимизация окна





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский