個人的によく使うコマンドをメモ
なにかあれば、随時更新予定
gdb ./program
ブレークポイントのセット
b *0x80482D8
main関数にブレークポイントをセット
b main
ブレークポイントの削除 (ブレークポイントの番号は"i b"コマンドで確認)
d [ブレークポイントの番号]
ブレークポイントの無効化
disable [ブレークポイントの番号]
実行
r
ステップオーバー実行
ni
ステップイン実行
si
次のブレークポイントまで動作を実行
c
レジスタの値を読み出す
例:eaxレジスタの値を読み出す
p $eax
レジスタに値をセットする
例:eaxレジスタに1584452044という値をセットする
set $eax = 1584452044
メモリの内容を文字列として読み出す
例:ebpレジスタから-78の位置にあるアドレスの内容を文字列として読み出す
x/s $ebp-0x4e
任意のアドレス上の値を読み出す
x 0xdeadbeef
ASLRの無効化
set disable-randomization on
ASLRの有効化
set disable-randomization off
アセンブリ言語の記法をIntel記法に切り替える (デフォルトはAT&T記法)
set disassembly-flavor intel
アセンブラ画面を立ち上げる
layout asm
プログラムを引数付きでデバッグする
gdb --args ./program "put your arg here"
参考