zl程序教程

您现在的位置是:首页 >  其它

当前栏目

ReadProcessMemory会被检测到吗?_仅完成部分readprocess如何解决

如何 解决 检测 完成 部分 ReadProcessMemory
2023-06-13 09:14:48 时间

大家好,又见面了,我是你们的朋友全栈君。

ReadProcessMemory

从特定进程的内存里读取数据。被读取的整个位置应该是可读的否则操作会失败。

BOOL WINAPI ReadProcessMemory(

__in HANDLE hProcess ,

__in LPCVOID lpBaseAddress ,

__out LPVOID lpBuffer ,

__in SIZE_T nSize ,

__out SIZE_T* lpNumberOfBytesRead

);

参数:

hProcess:目标进程的句柄。这个句柄必须有 PROCESS_VM_READ 标记。

lpBaseAddress:一个指向目标进程需要读取数据的首地址的指针。在读取数据之前,系统将会确认需读取的所有数据是否可读,如果不可读那么函数执行失败。

lpBuffer:指向要接收读取到的数据的缓冲区。

nSize:读取的数据大小,单位为Bytes。

lpNumberOfBytesRead:指向一个变量,用于放置传送数据的大小。如果为NULL,该参数被忽略。

返回值:

成功:非零。

失败:零。

得到更多错误信息,使用 GetLastError 函数。

如果读到了不可读的内存,该函数会失败。

附注:

该函数从指定的进程读取内存数据到当前进程的内存。任何标记为 PROCESS_VM_READ 的句柄都能使用该函数。Typically but not always, the process with address space that is being written to is being debugged.(在很典型的情况下,可被写内存的进程是处于调试状态的。)

要求:

头文件:在Winbase.h里声明;包括Windows.h。

库:Kernel32.lib

动态链接库:Kernel32.dll

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/186007.html原文链接:https://javaforall.cn