fdf*_*dfd 3 linux command-line memory dd command
在程序的内存地址0x7fffffffeb58处有一个值,我想找出地址的值。
有没有办法只使用命令来获取值?
我试过了,dd但无济于事。
如果要访问特定进程的虚拟内存:请参阅@Stéphane 的回答。
如果要访问物理内存:
如果您已devmem安装:
devmem 0x2000000
Run Code Online (Sandbox Code Playgroud)
使用 hexdump 的替代方法:
hexdump -C --skip 0x7fffffffeb58 /dev/mem | head
Run Code Online (Sandbox Code Playgroud)
请参阅StackOverflow 上的这个问题。
要查看进程的内存地址,您可以查看/proc/$pid/mem. 另请参阅/proc/$pid/maps进程地址空间中映射的内容。
您将希望seek()在该文件中到达您想要的位置,您应该可以使用dd:
dd bs=1 skip="$((0x7fffffffeb58))" count=4 if="/proc/$pid/mem" |
od -An -vtu4
Run Code Online (Sandbox Code Playgroud)
将在该地址读取 4 个字节并将它们解释为无符号 32 位整数。
另一种方法是将调试器附加到进程:
gdb --batch -ex 'x/u 0x7fffffffeb58' -p "$pid"
Run Code Online (Sandbox Code Playgroud)
在任何情况下,请注意,根据kernel.yama.ptrace_scopesysctl的值,您可能需要具有超级用户权限才能执行此操作。
| 归档时间: |
|
| 查看次数: |
21190 次 |
| 最近记录: |