Hea*_*ray 15 linux memory
我正在使用redis数据库并想探索应用程序正在使用的 RAM 的内容。
我觉得我为什么要这样做的解释比我要问的问题更有意义。
Redis 是一个简单的键值存储,用于存储二进制数据。我认为这将是一个探索编码之类的好地方,我会很有趣地做一些事情,比如浏览 RAM 寻找二进制数据集,做一些事情,比如寻找简单的模式;也许探索编写在 RAM 中搜索的婴儿查询语言的想法。
在阅读了SICP 中关于查询语言的章节后,我有了这个想法。
关于从哪里开始的任何想法?最初,我想向系统询问“请给我此应用程序运行所在的地址空间”。
Rob*_*ans 10
cat /proc/[pid]/maps 根据proc联机帮助页。
cat /proc/[pid]/maps
看起来像你想要的。如果您需要 pid,请从 ps 或任何其他工具中获取。
该地址查找正在使用的地址空间。去年 defcon 的一位研究员在 linux 上实现了 createremotethread。所以你可以这样做......然后以这种方式读取任意内存。
感谢psusi用于指出pmap -x [pid]更容易阅读。
pmap -x [pid]
小智 10
您可以使用 gdb 访问进程的内存。
另外,你应该看看“/proc”文件系统——它包含每个进程的伪文件;其中一些可能包含有趣的信息
Gil*_*il' 7
使用调试器,这就是它们的用途。
如果你想推出自己的,一切都会通过ptrace。
ptrace
您可以在 中查看进程的内存映射(内存目录)/proc/$pid/maps并从中读取整个内存内容/proc/$pid/mem。您不能正常打开后一个文件,请参阅如何在 Linux 下从 /proc/$pid/mem 读取?
/proc/$pid/maps
/proc/$pid/mem
归档时间:
13 年,6 月 前
查看次数:
21792 次
最近记录: