访问进程的内存区域

问题描述:

我想了解如何访问进程的内存区域,以便打印代码的起始和结束地址,其数据区域以及堆的开始和结束。 我认为/proc/$ pid/maps包含进程的开始和结束内存区域,但我想知道是否有另一种方式。也许ptrace()?访问进程的内存区域

/proc/$pid/maps/proc/$pid/smaps是获取关于进程地址空间映射的信息的最佳方法,但是是linux专用的方式。

您可以使用/proc/$pid/mem来访问内存区域(注意lseek适当的区域,或使用mmap来访问它)。

+0

访问进程的mm_struct是个好主意吗? – user1321341 2012-04-10 05:57:30

+0

它可能只存在于核心土地上。所以不行。在Linux上,'/ proc'文件系统是查询进程(和某些系统)相关事物的首选方式。 – 2012-04-10 07:06:34