首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从/proc/pid/map转储可执行文件的虚拟内存地址

从/proc/pid/map转储可执行文件的虚拟内存地址
EN

Unix & Linux用户
提问于 2021-12-17 10:51:56
回答 1查看 741关注 0票数 0

我想转储正在运行的可执行文件的虚拟内存地址。

这是我正在运行的命令:./executable & cat /proc/$(pidof executable)/maps > maps.dump,这是我得到的错误:cat: /proc//maps: No such file or directory

我使用&的目的是让executable在后台运行,这样当尝试访问它以转储maps信息时,进程将保持活跃,并且它的/proc/$(pidof executable)目录仍然在那里,但是显然它没有这样做,因为pidof executable返回空,这意味着进程不再运行。

EN

回答 1

Unix & Linux用户

发布于 2021-12-17 12:47:24

您可以使用shell的功能来记住在$!变量中启动的最后一个进程的PID。

代码语言:javascript
复制
#!/bin/bash
./executable &
cat /proc/$!/maps > maps.dump

如果您获得radare2,可以有一种更好的检查内存的方法:

代码语言:javascript
复制
#!/bin/bash
./executable &
r2 -d $!

将您放到radare2外壳中。

dm是您想要运行以获得“经典”内存映射的命令,dm=在视觉上帮助您更好地理解所查看的内容,dmd将调试内存映射转储到一个文件中。

然而,你可以做一些实际有用的事情。比如,使用dmsa临时保存所有映射的内存,然后随意修改进程内存,测试它对进程及其行为的影响,并在必要时进行选择性恢复(dmr)或完全恢复(dmra)。

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/682847

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档