readprocessmemory函数分析_max函数用法

readprocessmemory函数分析_max函数用法函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败!函数原型BOOLReadProcessMemory(  HANDLEhProcess,  //目标进程句柄  LPCVOIDlpBaseAddress,                    //读取数据的起始地址  LPVOIDlpBuffer,  //存放数据的缓存区地址 

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

函数功能描述:该函数用来读取指定进程的空间的数据,此空间必须是可以访问的,否则读取操作会失败!

函数原型
BOOL ReadProcessMemory(
   HANDLE hProcess,   // 目标进程句柄
   LPCVOID lpBaseAddress,
                     // 读取数据的起始地址
   LPVOID lpBuffer,   // 存放数据的缓存区地址
   DWORD nSize,       // 要读取的字节数
   LPDWORD lpNumberOfBytesRead
                     // 实际读取数存放地址
);

参数
hProcess
         目标进程的句柄,该句柄必须对目标进程具有PROCESS_VM_READ 的访问权限。
lpBaseAddress
         从目标进程中读取数据的起始地址。 在读取数据前,系统将先检验该地址的数据是否可读,如果不可读,函数将调用失败。
lpBuffer
         用来接收数据的缓存区地址。
nSize
         从目标进程读取数据的字节数。
lpNumberOfBytesRead
         实际被读取数据大小的存放地址。如果被指定为NULL,那么将忽略此参数。
返回值
         如果函数执行成功,返回值非零。
如果函数执行失败,返回值为零。调用 GetLastError 函数可以获取该函数执行错误的信息。
如果要读取一个进程中不可访问空间的数据,该函数就会失败。

备注
         ReadProcessMemory 函数从目标进程复制指定大小的数据到自己进程的缓存区,任何拥有PROCESS_VM_READ 权限句柄的进程都可以调用该函数,目标进程的地址空间很显然要是可读的,但也并不是必须的,如果目标进程处于被调试状态的话。

使用环境[包括适合WINDOWS的版本、所需头文件、所需链接库]
   Windows NT: 要求3.1或更高版本
   Windows: 要求 Windows 95 或更高版本
   Windows CE: 不支持
   头文件:   winbase.h
   输入库: kernel32.lib.

示例代码段
       HANDLE hProcess;
       int tmp;
       DWORD dwNumberOfBytesRead;
       hProcess=(OpenProcess(PROCESS_VM_READ,false,pid);//pid为目标进程的id
       if(hProcess !=NULL)
     {

           if(ReadProcessMemory(hProcess,(LPCVOID)0x00401000,&tmp,4,&dwNumberOfBytesRead))
           OutputDebugString(“读取数据成功”);
           else
           OutputDebugString(“读取数据失败”);
     }

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

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么选择靠谱Java培训机构?[通俗易懂]

    怎么选择靠谱Java培训机构?[通俗易懂]不论是从2018年TIOBE每个月的编程语言排行榜上看,还是从各知名招聘网站年底分析的招聘报告中了解,我们都不难看出,在IT行业里Java依然是技术圈中最热门、最抢手、需求量最大的编程语言!所以,我们常常能够在知乎、百度上搜索到大量类似于“如何选择一家好的Java培训机构?选择Java培训机构应该注意哪些问题?有哪些Java培训机构值得推荐?”这些换汤不换药的提问。各类问题下的答案也是参差不…

    2022年9月1日
    4
  • 数据挖掘十大算法(四):Apriori(关联分析算法)

    数据挖掘十大算法(四):Apriori(关联分析算法)终于到了机器学习实战的第十一章了,这也是继K-均值后的第二个无监督学习算法了。同样的该算法也是在一堆数据集中寻找数据之间的某种关联,这里主要介绍的是叫做Apriori的‘一个先验’算法,通过该算法我们可以对数据集做关联分析——在大规模的数据中寻找有趣关系的任务,本文主要介绍使用Apriori算法发现数据的(频繁项集、关联规则)。这些关系可以有两种形式:频繁项集、关联规则。    频…

    2022年5月1日
    35
  • pycharm 如何更新本地项目文件[通俗易懂]

    pycharm 如何更新本地项目文件[通俗易懂]本地更新项目文件后,pycharm不会自动更新导航栏的文件目录,运行程序时报错,找不到文件:解决办法1:解决办法2:

    2022年8月25日
    5
  • ubuntu系统使用Anaconda安装tensorflow-gpu环境

    ubuntu系统使用Anaconda安装tensorflow-gpu环境

    2021年4月9日
    157
  • [转]Asp.Net MVC 扩展联想控件

    [转]Asp.Net MVC 扩展联想控件

    2021年8月24日
    39
  • sikuli python java_自动化测试之sikuli调研

    sikuli python java_自动化测试之sikuli调研调研结果Sikuli可用于web和app的自动化测试中,操作简单,代码容易,但截图过程太过繁琐,所需要的图片内存占用量大,且sikuli的图片识别度较低,需对所要操作的图片进行精准截图。什么是SikuliMIT的研究人员设计了一种新颖的图形脚本语言Sikuli,计算机用户只须有最基本的编程技能(比如会写print”helloworld”),他不需要去写出一行行代码,而是用屏幕截图的方式,用截出来…

    2025年6月9日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号