Delphi ReadProcessMemory问题

标签 delphi

它读取的前 3 个地址是正确的,最后一个是错误的...忽略垃圾代码我是菜鸟,我只是无法弄清楚为什么第四个地址无论如何,即使我使用与其中之一相同的地址其他返回错误的值...

procedure ReadFirstCard(Address: Integer);
var
Handle,i,a,b,c : Integer;
begin
GetWindowThreadProcessId(FindWindow(nil, PAnsiChar(Client)), @ProcessId);
Handle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
ReadProcessMemory(Handle, Ptr(Address), @NewValue, Data, CardRead);
CloseHandle(Handle);
end;

procedure ReadFirstCardSuit(Address2: Integer);
var
Handle,i,a,b,c : Integer;
begin
GetWindowThreadProcessId(FindWindow(nil, PAnsiChar(Client)), @ProcessId);
Handle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
ReadProcessMemory(Handle, Ptr(Address2), @NewValue2, Data2, CardRead2);
CloseHandle(Handle);
end;

procedure ReadSecondCard(Address3: Integer);
var
Handle,i,a,b,c : Integer;
begin
GetWindowThreadProcessId(FindWindow(nil, PAnsiChar(Client)), @ProcessId);
Handle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
ReadProcessMemory(Handle, Ptr(Address3), @NewValue3, Data3, CardRead3);
CloseHandle(Handle);
end;

procedure ReadSecondCardSuit(Address4: Integer);
var
Handle,i,a,b,c : Integer;
begin
GetWindowThreadProcessId(FindWindow(nil, PAnsiChar(Client)), @ProcessId);
Handle := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
ReadProcessMemory(Handle, Ptr(Address4), @NewValue4, Data4, CardRead4);
CloseHandle(Handle);
end;

最佳答案

由于第四个函数的唯一不同之处在于它使用 Data4 作为大小,而不是 Data1Data3,因此似乎Data4 不得具有从目标进程复制的正确字节数值。确保 NewValue4 也足够大以接收整个结果。

您不会检查任何这些 API 函数的返回值,因此如果它们失败,您永远不会知道。确保OpenProcess返回有效句柄,并确保ReadProcessMemory返回非零值。如果没有,请调用 GetLastError 找出原因。

关于Delphi ReadProcessMemory问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4789721/

相关文章:

delphi - 复制流数据时不断出现读取错误

android - 如何在Delphi Android App中部署.ini文件?

delphi - Delphi 2009 中的 RTL 版本号是多少?

arrays - 如何对末尾带有零的整数数组进行排序?

Delphi TCP Socket Server - 一次广播/回复多个客户端

delphi - 如何将格式化为以下格式的字符串转换为TDateTime:15h44m28s?

delphi - 创建类集合的最佳方法

delphi - 如何使用delphi 2010 rtti设置数组长度

delphi - RemObjects SDK参数可以通过URI传递吗?

delphi - FileSize 函数的速度问题