【问题标题】:C++ how to find last (offset - adress) used in processmemory with use readprocessmemoryC ++如何使用readprocessmemory查找进程内存中使用的最后一个(偏移地址)
【发布时间】:2017-04-05 21:06:28
【问题描述】:

我用这个代码readprocessmemory:

  BOOL WINAPI ReadProcessMemory(
    _In_  HANDLE  hProcess,
    _In_  LPCVOID lpBaseAddress,
    _Out_ LPVOID  lpBuffer,
    _In_  SIZE_T  nSize,
    _Out_ SIZE_T  *lpNumberOfBytesRead
    );
char value[5]; 
HANDLE hProcess = OpenProcess(PROCESS_ALL_ACCESS, 0, 6500);
{
    ReadProcessMemory(hProcess, (LPVOID)105477, value, 5, 0);
}

它的工作 100%

但我想知道如何知道进程内存中使用的最后一个偏移量 - 在我阅读之前

看图:enter image description here

这个进程内存中的最后一个偏移量是 7FFE0FFF - 但是在我读取进程内存之前我怎样才能得到它

【问题讨论】:

  • 为什么要投票给我的帖子?
  • 不检查返回值怎么知道有效?
  • 这可能随时改变。内存是动态分配和释放的。你想做什么。
  • 我的意思是,上面的代码看起来就像一个 MSDN 转储......
  • 嗨,David Heffernan,我知道它的变化——我只想得到最后一个偏移量

标签: c++ c winapi


【解决方案1】:

如果你绝对确定你可以读取其他进程的内存,它可能会起作用......无论如何,这是一种非常危险的方法,有更好的 IPC API 来做这些事情!

除非您自己编写调试器...事实上 ReadProcessMemory 在这里被引用“用于调试的过程函数”https://msdn.microsoft.com/it-it/library/windows/desktop/ms680549(v=vs.85).aspx

【讨论】:

  • 嗨,“这里有更好的 IPC API 来做这些事情!” ??喜欢什么?
  • 这取决于你必须做什么......如果你只需要在两个进程之间交换数据,你就有共享内存、管道、套接字和许多其他......
  • 不不 - 我只想获得进程内存的最后(使用)偏移量 - 没有别的
  • 但是在你的进程中还是在另一个进程中??
  • 另一个进程 - readprocess 它的工作很棒!现在你知道我想要什么了——是吗? - 看图:i.stack.imgur.com/ukpZq.png
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-31
  • 2021-09-02
  • 1970-01-01
  • 2011-06-29
相关资源
最近更新 更多