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获取当前时间戳/时间戳转换

    java 时间戳字符串_Java获取当前时间戳/时间戳转换@date2017/11/25*/publicclassApp{publicstaticvoidmain(String[]args){//精确到毫秒//获取当前时间戳System.out.println(System.currentTimeMillis());System.out.println(Calendar.getInstance().getTimeInMillis());Sy…

    2022年4月29日
    340
  • arping常见用法

    arping常见用法阅读本文大概需要2分钟。功能:查看本LAN内IP对应的主机MAC地址,以及MAC的占用问题。有两个版本:ThomasHabets版和Linuxi…

    2022年6月3日
    43
  • linux防cc脚本_configure命令

    linux防cc脚本_configure命令CC攻击就是说攻击者利用服务器或代理服务器指向被攻击的主机,然后模仿DDOS,和伪装方法网站,这种CC主要是用来攻击页面的,导致系统性能用完而主机挂掉了,下面我们来看linux中防CC攻击方法。什么是

    2022年8月1日
    10
  • csdn修改博客皮肤

    csdn修改博客皮肤哇,之前大白挺好看的,现在被改得丑死了!想换个皮肤来着,没想到啊,不让换!还好在网上找到了教程,尤其感谢博友前行中632按F12进行调试,找到博客皮肤对应的div标签修改checked属性位置,选择皮肤这里选择想使用的博客皮肤对应的div块标签,在input标签中增加checked属性,当然原先的那个checked要删掉。保存也可以直接在当前博客皮肤的代码上进行修改,改成你…

    2022年7月14日
    14
  • 按位异或解题技巧「建议收藏」

    按位异或解题技巧「建议收藏」按位异或可以解决类似开灯问题一类的问题。首先了解下什么是按位异或:异或运算:首先异或表示当两个数的二进制表示,进行异或运算时,当前位的两个二进制表示不同则为1相同则为0.该方法被广泛推广用来统计一个数的1的位数!参与运算的两个值,如果两个相应bit位相同,则结果为0,否则为1。即:  0^0=0,  1^0=1,  0^1=1,  1^1=0按位异或的3个特点:…

    2022年6月4日
    39
  • CmakeList的编写和参数详解「建议收藏」

    CmakeList的编写和参数详解「建议收藏」CmakeList的编写和参数详解

    2025年5月25日
    4

发表回复

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

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