12 我正在使用Redis数据库,并想探索应用程序正在使用的RAM的内容。 我觉得为什么要这样做的解释比我要问的问题更有意义。 Redis是一个简单的键值存储,用于存储二进制数据。我认为这是探索诸如编码之类的好地方,并且对我来说很有趣,例如在RAM上浏览以查找二进制数据集,在进行诸如查找简单模式之类的事情;也许探索编写在RAM中搜索的婴儿查询语言的想法。 阅读SICP中有关查询语言的章节后,我就有了这个想法。 关于从哪里开始有什么想法?最初,我想向系统询问“请给我运行该应用程序的地址空间”。 linux memory — 魔法师 source
7 cat /proc/[pid]/maps 根据proc联机帮助页。 看起来像你想要的。如果需要pid,请从ps或任何其他工具中获取它。 那就是寻找使用中的地址空间。去年defcon的一位研究员在Linux上实现了createremotethread。因此,您可以这样做...然后以这种方式读取任意内存。 感谢psusi用于指出pmap -x [pid]更容易阅读。 — 机器人人类 source 3 请注意,将pmap这些信息格式化,以便于人类阅读。 — psusi 2012年
6 使用调试器,这就是它们的用途。 如果您想自己动手,一切都会进行ptrace。 您可以在其中看到进程的内存映射(内存的目录),/proc/$pid/maps并从中读取整个内存的内容/proc/$pid/mem。您不能正常打开后一个文件,请参阅如何在Linux下从/ proc / $ pid / mem中读取? — 吉勒斯“别再邪恶了” source 1 您对我的某些问题提供了极大的帮助。您是否建议阅读任何与Linux OS相关的书籍或特别有趣的Web文章? — MageProspero 2012年
pmap
这些信息格式化,以便于人类阅读。