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

Вниз

Подскажите, какие значения должны быть присвоены переменным в   Найти похожие ветки 

 
nuflin   (2004-03-26 10:04) [0]

Подскажите, какие значения должны быть присвоены переменным в функции ReadProcessMemory

ReadProcessMemory(
   HANDLE hProcess, // handle of the process whose memory is read  
   LPCVOID lpBaseAddress, // address to start reading
   LPVOID lpBuffer, // address of buffer to place read data
   DWORD nSize, // number of bytes to read
   LPDWORD lpNumberOfBytesRead  // address of number of bytes read
  );


 
Игорь Шевченко ©   (2004-03-26 10:18) [1]

Пример использования:

var
 AProcessHandle: THandle;
 AProcessID: Cardinal;
 ATargetProcessParametersPointer: Pointer;
 AReturned: Cardinal;
 DesiredAddress: Pointer;
..............
   AProcessHandle := OpenProcess(PROCESS_VM_READ, false, AProcessID);
   if AProcessHandle = 0 then
     RaiseLastWin32Error();
   try
     { Получение адреса структуры параметров процесса }
     if not ReadProcessMemory(AProcessHandle,
            DesiredAddress,
                            @ATargetProcessParametersPointer, SizeOf(Ptr32),
                            AReturned) then
       RaiseLastWin32Error();


 
nuflin   (2004-03-27 09:28) [2]

AProcessHandle всегда будет равен 0 даже если менять значение переменной AProcessID


 
Kerk ©   (2004-03-27 10:33) [3]

нет. код покажи


 
nuflin   (2004-03-27 10:58) [4]

например
AProcessHandle := OpenProcess(PROCESS_VM_READ, false, 1);


 
Digitman ©   (2004-03-27 12:54) [5]


> nuflin


что за "единица" фигурирует 3-м параметром вызова OpenProcess() ? от балды проставлена она ?

3-й параметр д.б. уникальным идентификатором существующего процесса, а не каким-то непопонятно откуда взятым числом


 
nuflin   (2004-03-27 13:57) [6]

> Digitman
третий праметр имеет тип cardinal(dword,longword) - 0..4294967295


 
Digitman ©   (2004-03-27 14:09) [7]

значение уник.идентификатора процесса как раз и есть значение кардинального типа (DWORD)

вопрос в том, идентификатор какого конкретно процесса ты пытаешься передать этим параметром .. в системе не существуют процессы с уник.идентификатором равным 1

если ты пытаешься открыть текущий процесс, то его ид-р м.б. получен вызовом GetCurrentProcessId


 
nuflin   (2004-03-27 14:46) [8]

А как получить идентификаторы всех процессов?


 
Digitman ©   (2004-03-27 14:55) [9]

используй модули tlhelp32.pas (win9x) и psapi.pas (NT/W2k/XP)



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

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

Наверх




Память: 0.48 MB
Время: 0.054 c
8-1077973068
AlexTregubov
2004-02-28 15:57
2004.05.16
Цветное изображение в серое


1-1083398855
pashaz
2004-05-01 12:07
2004.05.16
Перехват ALT+F4


3-1082077335
rosl
2004-04-16 05:02
2004.05.16
запрос SQL


14-1082731753
Nick-From
2004-04-23 18:49
2004.05.16
Сбор информации из internet


7-1080732327
Fiend
2004-03-31 15:25
2004.05.16
Импорт функции из .exe