读取/ proc / PID / maps

时间:2019-07-17 06:05:06

标签: linux memory debian proc aslr

我有一个二进制文件,执行后不久退出/ segfaults。我正在尝试在此二进制文件退出之前读取/ proc / PID / maps,但是没有运气。

我尝试过cat /proc/($./binary [input] & echo $!)/maps,它应该导致/ proc / pidofprocess / maps,但始终不会获得此类文件或目录。

我的目标是查看后续运行中将内容加载到何处。

1 个答案:

答案 0 :(得分:1)

您的解决方案cat /proc/$(<pipeline>)/maps直到整个cat结束(即使您在其中使用<pipeline>时,都不会调用&,所以您将永远无法获得{ {1}}。

另一方面,

maps

将立即返回。当然,随着二进制文件立即退出,<pipeline> & cat /proc/${!}/maps 可能仍然运行得太晚而无法捕获cat

但是您可以尝试:

/proc/${!}/maps

这整天重新开始了您的while true; do; ./binary [input] & cat /proc/${!}/maps ; done binary之间的比赛,并且有时 cat可能会获胜(就我而言,{ {1}},而不是cat中30的1)

这会在您的终端上打印大量垃圾,但是您可以通过重定向ls <nonexisting file>的输出来收集成功的地图:

./binary

优雅?不。有效:希望如此!