Linux

如何使用命令獲取記憶體地址的值?

  • December 17, 2018

在程序的記憶體地址0x7fffffffeb58處有一個值,我想找出地址的值。

有沒有辦法僅通過使用命令來獲取值?

我試過dd但無濟於事。

要查看程序的記憶體地址,您可以查看/proc/$pid/mem. 另請參閱/proc/$pid/maps程序地址空間中映射的內容。

您需要seek()在該文件中到您想要的位置,您應該可以使用dd

dd bs=1 skip="$((0x7fffffffeb58))" count=4 if="/proc/$pid/mem" |
 od -An -vtu4

將在該地址讀取 4 個字節並將它們解釋為無符號 32 位整數。

另一種方法是將調試器附加到程序:

gdb --batch -ex 'x/u 0x7fffffffeb58' -p "$pid"

在任何情況下,請注意,根據kernel.yama.ptrace_scopesysctl 的值,您可能需要擁有超級使用者權限才能執行此操作。

引用自:https://unix.stackexchange.com/questions/489297