- 人气:
- 放大
- 缩小
- 二维码
- 赞赏
delphi ReadProcessMemory 输入进程ID 输入读取地址
procedure TForm6.Button1Click(Sender: TObject);
var
Ghwnd: HWND;
ProcID: Cardinal;
Process: THandle;
lpBaseAddress: Pointer;
nSize: SIZE_T;
lpNumberOfBytesRead: SIZE_T;
// lpBuffer: array [0 .. 500] of Char;//读取字符串正常
lpBuffer:DWORD;
cds:TClientDataSet;
dwSize:DWORD;
begin
// Ghwnd:=FindWindow('TianLongBaBu WndClass','Caption1');
ProcID := StrToInt(EditProcID.Text);//输入进程ID
lpBaseAddress := Pointer(StrToInt(EditAddr.Text));//输入要读取的进程内地址
nSize := SizeOf(tClientDataSet );
// GetWindowThreadProcessId(Ghwnd, ProcID); //
Process := OpenProcess(PROCESS_ALL_ACCESS, False, ProcID); // PROCESS_VM_READ 取得进程句柄
ReadProcessMemory(Process, lpBaseAddress, @cds, nSize, lpNumberOfBytesRead); // dwSize lpNumberOfBytesRead:THandle
// Caption := PChar(lpBuffer);
DataSource1.DataSet := cds;
end;