为什么使用 ReadProcessMemory() 和当前进程的句柄
Why use ReadProcessMemory() with handle to current process?
使用 NtQueryInformationProcess,可以通过读取返回的 PROCESS_BASIC_INFORMATION 类型结构中的 PebBaseAddress 字段来获取当前进程基址。
我见过使用 ReadProcessMemory(( 读取当前进程基址的内存的代码,因为前几个字节包含一些显示详细进程信息的指针。我还需要获得一些这些信息,研究向我展示了如何做到这一点。
但是,我仍然对为什么从当前进程读取内存时需要ReadProcessMemory((感到困惑。相对于进程基础的指针不能取消引用,还是会导致分段错误?是否持有与流程基础相关的指针?
ReadProcessMemory
将为您检查自己进程中的地址范围是否有效,并在出现问题时返回错误(ERROR_PARTIAL_COPY(而不是崩溃。
除此之外,我认为没有理由。如果您确定指针正确,则可以使用memcpy
(并且更快(。
相关文章:
- 枚举进程模块在有效句柄上返回无效句柄
- 获取特定进程的句柄数
- 获取现有进程句柄
- 获取进程内存信息失败,错误 6 句柄无效
- 是否可以注入一个进程并获取给定的句柄,然后使用它们注入另一个进程
- 将窗口句柄从一个进程使用到另一个进程(插件 vst 音频)
- 为什么使用 ReadProcessMemory() 和当前进程的句柄
- 如何通过其 HWND 句柄在另一个进程中更改 TDateTimePicker 控件中的当前选定日期
- C++:通过进程id、进程句柄和标题名称从进程中获取唯一窗口的窗口句柄的最佳方法
- 获取进程句柄的详细信息
- 如何在Windows中获取当前进程的所有子进程的句柄
- 获取进程句柄名称
- 具有进程的句柄 如何注册以监视其关闭/重新启动/复制事件
- Windows -- 继承子进程中的控制台文件句柄
- 如何从win32进程中获取线程句柄列表
- 如何在C/C++中创建一个新进程,并在WinXp中获得这个新进程句柄
- 从Windows中的父进程继承句柄
- 获取已创建进程的进程句柄
- 枚举进程句柄,奇怪的问题
- 从进程句柄获取进程信息