コマンドを使用してメモリアドレス値を取得するには?

コマンドを使用してメモリアドレス値を取得するには?

プログラムのメモリアドレスに0x7fffffffeb58値がありますが、そのアドレスの値を知りたいです。

コマンドを使用して値を取得する方法はありますか?

私は試しましたが、dd成功しませんでした。

ベストアンサー1

プロセスのメモリアドレスを表示するには、プロセスアドレス空間にマッピングされている内容/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の値に応じてこれを実行するには、スーパーユーザー権限が必要な場合があります。

おすすめ記事