1

私は「搾取の芸術をハッキングする第2版」という本を自分で勉強していて、最初の一連の障害に到達しました。

GDBでは、次のコードを理解できます。

x/x $rip

レジスタ$ripを調べ、16進数で出力します。

しかし、このコードは何をしますか:

x/2x $rip

この本は、ターゲットアドレスで複数のユニットを調べていると述べています。しかし、それは、次の2回の変更で$ripの値を示していることを意味します。それとも何か他の意味ですか?

コロンボが言うようにもう一つ質問。検査コマンドを呼び出すと、次のようになります。

0x100000f00 <main+8> 0x00fc45c7

main + 8はどういう意味ですか?

4

1 に答える 1

5

x/x $ripレジスタ $rip を調べ、16 進数で出力します。

それは正しくありません: が指すメモリを調べます$rip$ripそれ自体を調べたい場合は、 を使用しますprint/x $rip

しかし、このコードは何をしますか:x/2x $rip

が指す 2 つのメモリ ワードを調べます$rip

main+8とはどういう意味ですか?

8これは、命令の先頭からのオフセットで、命令を含むメモリを見ていることを意味します。main()

于 2013-01-07T05:09:07.247 に答える