最終更新日時 (UTC): 2026-07-06 13:22
個人的によく使うコマンドをメモ
なにかあれば、随時更新予定
GDBの起動
gdb ./program
ブレークポイントのセット
b *0x80482D8
main関数にブレークポイントをセット
b main
ブレークポイントの削除 (ブレークポイントの番号は”i b”コマンドで確認)
d [ブレークポイントの番号]
ブレークポイントの無効化
disable [ブレークポイントの番号]
実行
r
入力値をファイルから読み込んで実行
# create file with input data
python2 -c "print 'A'*40 + '\x41\x41\x41\x41\x41\x41\x00\x00'" > input.bin
# launch GDB and feed the file as an input
gdb ./program
r < input.bin
ステップオーバー実行
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"
gdb-pedaのインストール
Kali linuxにgdb-pedaをインストールする場合。
sudo apt install gdb-peda
通常ならgdb-pedaのインストール後にGDBを起動すると自動的にgdb-pedaが読み込まれる。 (GDBのプロンプトがgdb-peda$になっていればgdb-pedaがロードされている)
もしgdb-pedaがロードされない場合は、.gdbinitファイルにpeda.pyのパスを追加する。
# locate the path to peda.py
find / -name peda.py 2> /dev/null
# add the path to peda.py to .gdbinit
echo "source /usr/share/gdb-peda/peda.py" >> ~/.gdbinit
参考