ReadProcessMemory()
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
ReadProcessMemory()相关推荐
- ReadProcessMemory函数的分析
ReadProcessMemory函数用于读取其他进程的数据.我们知道自远古时代结束后,user模式下的进程都有自己的地址空间,进程与进程间互不干扰,这叫私有财产神圣不可侵犯.但windows里还真就 ...
- 如何使用ReadProcessMemory读取多重指针
1.多重指针通常是指多个指针的嵌套,每个指针里存放的是其他指针的地址,简单点说就是在一个变量中存入了一个数,而这个数正好是一个变量的地址,通过这个地址就可以去操作那个变量 2.注意事项:使用ReadP ...
- ReadProcessMemory Types of actual and formal var parameters must be identical
转自:https://www.cnblogs.com/cb168/p/5884673.html delphi XE Berlin ReadProcessMemory WriteProcessMemor ...
- ReadProcessMemory函数的用法
函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败! 函数原型 BOOL ReadProcessMemory( HANDLE hProcess, / ...
- HOOK api readprocessmemory and writeprocessmemory
编译环境:delphi 2010+windows 7 u ,用途读取其他程序中readprocessmemory和writeprocessmemory的参数,但不知读取偏移即a+($b),b是怎么读的 ...
- FindWindow ,GetWindowThreadProcessId , OpenProcess 和ReadProcessMemory
文章目录 FindWindow 函数功能: 函数声明: 第一个参数 第二个参数 返回值 注意: GetWindowThreadProcessId 函数功能 函数声明 第一个参数: 第二个参数: 返回值 ...
- WinAPI-函数OpenProcess/ReadProcessMemory/WriteProcessMemory
OpenProcess函数声明如下,失败则返回NULL(0,也就是false) #include <Windows.h> HANDLE OpenProcess ( DWORD desire ...
- ReadProcessMemory与WriteProcessMemory用例分析
首先介绍一个函数VirtualProtectEx,它用来改变一个进程的虚拟地址中特定页里的某一区域的保护属性,这句话有些咬嘴,直接从MSDN中翻译过来的,简单来说就是改变某一进程中虚拟地址的保护属性, ...
- [检测过检测] 重写 ReadProcessMemory 、WriteProcessMemory
一.本文大纲 系统调用的两种方式:中断门和快速调用 _KUSER_SHARED_DATA 结构 使用 cpuid 指令判断当前CPU是否支持快速调用 3环进0环需要更改的4个寄存器 以 ReadPro ...
最新文章
- tensorflow.unstack() 与 tensorflow.stack()
- asyncio 回调
- python 线程同步_Python并发编程-线程同步(线程安全)
- Leetcode--122. 买卖股票的最佳时机Ⅱ
- 【ElasticSearch】es 面试题 视频 笔记
- 解决win7光驱驱动找不到的问题
- 你是如何离编程越来越远的?
- Python入门--流程控制语句break
- python方法_详细解读Python中的__init__()方法
- qq空间代码查询_Mysql千万级大数据查询优化经验,一点课堂(多岸学院)
- Linux的磁盘系统和文件系统显示的文件大小为什么不一样(du指令和ls指令的区别)...
- moodle安装过程中可能出现的问题
- 晶体管电路设计 上 铃木雅臣 学习体会
- php后门 佛像,给千年佛像做了个CT,结果好吓人
- 程序员一年多少行_程序员版的倚天屠龙,看完泪奔!
- 啊,原来申请数字证书这么简单
- 2285列车时刻表_火车票查询j2285时刻表
- android平板ps,移动端和平板上的Photoshop Touch(支持iOS和Android)
- delphi 两行代码实现合并多张图片生成mp4视频
- “对不起,我们公司只招35岁以上的...”
热门文章
- 带宽与码元的关系_带宽、速率和码元宽度问题
- INFLUXDB-influxDB一些查询语法你必须知道
- LNK1120: 一个无法解析的外部命令
- mysql连接查询和in的效率取舍
- iOS开发小记:初次接入环信SDK3.0时遇到的问题及解决办法汇总
- UC/OS和UCLinux比较
- 【科创人南京行】西祠胡同创始人“响马”刘琥:一生寻找精神绿林,减区块链也许是正确方向...
- 火遍网络的KPI异常检测到底什么梗?
- 写 字 楼 通 信系统工程技术售后维护
- idea智能提示设置和修改提示快捷键