gdb-pedaなんてツールを使おうとしてるってことは、CTFとかのお勉強中ですか?
ってことで、訳の分からん「gdb-peda」についてまとめてみました。
僕のプロフィールはこちら
gdb-pedaとは
gdb-pedaは、ざっくり言うと「デバッガ」です。
gdb自体はLinux系OSに標準で入っていることもあるそうで、CTFでは最もよく使われるデバッガでもあります。
gdb-pedaのインストール
1 2 |
git clone https://github.com/longld/peda.git ~/peda echo "source ~/peda/peda.py" >> ~/.gdbinit |
2つ目のコマンドに関しては、なぜ必要なのか良く分かりません。
まあ呪文みたいなもんだと思って打ちましょう。
gdb実行
1 |
gdb [ファイル] |
↑のコマンドを実行し、「gdb-peda」と赤文字で表示されていればOK。
gdb-pedaコマンド一覧
gdb-pedaのコマンド一覧です。
コマンド | 説明 |
---|---|
nextcall | 次のcall命令まで進める。 |
nexti(ni) | ステップを進める。 同じコマンドを続けて実行する場合は、Enterキーを押す。 |
pdisass [関数名] | 関数の中身を表示する。 |
quit(q) | 終了。 |
start | 開始。 |
x/s [メモリ] | メモリの中身を調べたいときに使用する。 例)x/s $rbp |
gdb-peda内のワード
コマンド | 説明 |
---|---|
push | 保存。 「push rbp」はベースポインタの保存。 |
mov | 代入。というか移動? 「mov rbp rsp」はスタックポインタをベースポインタに代入。 |
jne | jump if not equalの略。 直前の条件が成立しなかった場合に指定されたアドレスにジャンプする。 |
まとめ
じーーと眺めてると少しずつ分かってくる、そんな気がする。
情報なさ過ぎてコマリンゴだけど頑張るよ、ワイは。
さいなら。