D 我可以访问当前应用程序使用的内存之外的内存吗?

D 我可以访问当前应用程序使用的内存之外的内存吗?,d,D,可以访问位于当前应用程序之外的内存吗?例如,我需要检查App2如何使用它的内存检查内存碎片。afaik每个应用都有自己的虚拟内存,但我需要检查位于它之外的内存。是的,调试器就是这样工作的,如果两个程序合作,你可以分配共享内存。如果您的程序运行时具有足够的管理员权限,并且系统已为此进行了配置,则还可以通过内核请求访问原始系统内存 在Windows上,有一个名为ReadProcessMemory的函数,可以为您制作副本。在Linux上,您可以打开/proc/[pid]/mem并通过它访问它。您还可以

可以访问位于当前应用程序之外的内存吗?例如,我需要检查App2如何使用它的内存检查内存碎片。afaik每个应用都有自己的虚拟内存,但我需要检查位于它之外的内存。

是的,调试器就是这样工作的,如果两个程序合作,你可以分配共享内存。如果您的程序运行时具有足够的管理员权限,并且系统已为此进行了配置,则还可以通过内核请求访问原始系统内存

在Windows上,有一个名为ReadProcessMemory的函数,可以为您制作副本。在Linux上,您可以打开/proc/[pid]/mem并通过它访问它。您还可以查阅有关如何编写调试器并以这种方式附加到进程的教程


然而,我不会亲自尝试,除非你已经有经验。。。要得到任何有用的东西比你意识到的要困难得多。相反,请尝试使用现有的程序,如调试器和内存分析器,或使用仪器对App2进行自我报告。

我找到了WinAPI的使用示例,这里有一个关于您所说内容的函数调用。但这是回布尔。你能告诉我怎么用吗?BOOL ReadProcessMemoryHANDLE、PCVOID、PVOID、DWORD、PDWORD;请阅读这里的手册:您给它一个缓冲区,将内存作为参数之一复制到其中。