gpt4 book ai didi

delphi - 如何使用 ReadProcessMemory 读取 pchar

转载 作者:行者123 更新时间:2023-12-03 00:16:41 25 4
gpt4 key购买 nike

我正在使用ReadProcessMemory函数读取外部正在运行的应用程序的内容,我有一个指向PChar(UNICODE)的内存地址。我想知道哪种方法可以将该值返回到字符串变量?

现在我正在使用此代码,但不起作用

var
c : char;

repeat
if not ReadProcessMemory(ph, Address, @c, sizeof(c), BytesRead) then
raise exception.create(syserrormessage(getlasterror));
result:=result+c;
Address:=pointer(integer(address)+sizeof(c));
until (c=#0#0) or (BytesRead<>sizeof(c));

出现此错误

Only part of a ReadProcessMemory or WriteProcessMemory request was completed

最佳答案

您正在读取字符串:您读取的不是字节而是字符,因此将空终止符与字符进行比较,即:

until (c=#0) or (BytesRead<>sizeof(c));

#0 已经是 2 个字节,#0#0 是 4 个字节(它不能等于任何 Char)。

当您读取字符串并“进入不可访问的进程区域”(根据 documentation )时,会返回错误。

关于delphi - 如何使用 ReadProcessMemory 读取 pchar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10762387/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com