Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.03.30;
Скачать: CL | DM;

Вниз

Ошибка доступа в CreateRemoteThread   Найти похожие ветки 

 
Almaz ©   (2011-12-12 10:33) [0]

Есть код:


procedure CloseRemoteHandle(ProcessID: Cardinal; Handle: THandle);
var
 hKernel32, hProcess, hThread: THandle;
 Dummy: Cardinal;
 PtrCloseHandle: Pointer;
begin
 hKernel32 := LoadLibrary("kernel32.dll");
 if hKernel32 = 0 then
   RaiseLastOSError;
 try
   hProcess := OpenProcess(PROCESS_CREATE_THREAD or PROCESS_VM_OPERATION or PROCESS_VM_WRITE
     or PROCESS_VM_READ, FALSE, ProcessID);
   if hProcess = 0 then
     RaiseLastOSError;
   try
     PtrCloseHandle := GetProcAddress(hKernel32, "CloseHandle");
     if Assigned(PtrCloseHandle) then
       RaiseLastOSError;

     hThread := CreateRemoteThread(hProcess, nil, 0, PtrCloseHandle, Pointer(Handle), 0, Dummy);
     if hThread = 0 then
       RaiseLastOSError;
     try
       if WaitForSingleObject(hThread, 2000) <> WAIT_OBJECT_0 then
         RaiseLastOSError;
     finally
       CloseHandle(hThread);
     end;
   finally
     CloseHandle(hProcess);
   end;
 finally
   FreeLibrary( hKernel32 );
 end;
end;


При вызове CreateRemoteThread происходит ошибка доступа. Какие привелегии кроме SeDebugPrivilege необходимо получить для успешного выполнения ? Процесс запущен от имени администратора.


 
CRLF   (2011-12-12 11:30) [1]


> if Assigned(PtrCloseHandle) then        RaiseLastOSError;
То ли ты при цитировании наврал, то ли пытаемся CreateRemoteThread с нулевым стартовым адресом.


 
Almaz ©   (2011-12-12 13:49) [2]

Опечатка, естественно :)


 
депутатъ   (2011-12-12 15:05) [3]

The handle must have the ...PROCESS_QUERY_INFORMATION... access rights, and may fail without these rights on certain platforms.


 
Almaz ©   (2011-12-12 16:09) [4]

Спасибо !!! Глупая ошибка - действительно, забыл указать PROCESS_QUERY_INFORMATION.

Удачи.



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

Текущий архив: 2014.03.30;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.006 c
6-1272206861
tippa
2010-04-25 18:47
2014.03.30
много подключений с одного сокета


3-1296464216
12
2011-01-31 11:56
2014.03.30
Научите в ODAC обрабатывать ошибки.


2-1370712411
oliksin
2013-06-08 21:26
2014.03.30
Почему программа не работает? Не могу найти ошибку.


9-1194966580
Voland2000
2007-11-13 18:09
2014.03.30
Посчитать количество полигонов в Octree узле


15-1379480379
[ВладОшин]
2013-09-18 08:59
2014.03.30
Научите писать HelloWorld для Андроида на XE5