Linux
如何使用命令獲取記憶體地址的值?
在程序的記憶體地址
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_scope
sysctl 的值,您可能需要擁有超級使用者權限才能執行此操作。