読者です 読者をやめる 読者になる 読者になる

cookies.txt      .scr

ただのテキストファイルのようだ

gdbの最小限コマンド

続き→http://cookies.hatenablog.jp/entry/2013/06/28/231846


ImmunityDebuggerに最近はまった僕だけど、
Windowsで動かないELFとかだとどうしようもないのでgdbをするしかなく。
CTFをいくつかして以来、いくらか覚えたが、忘れそうなので記録。

とりあえずこれだけ覚えておけば生きていけるんじゃなかろうか。
習うより慣れよで使っているから、間違って覚えてるものもたぶんある。

AT&T慣れしてる人には当たり前でも、
Intelな僕には初めてのことも多いので、その辺のことも書く。

コマンド一覧

h ヘルプ。カテゴリに分かれてます。
r 最初から実行する。実行の引数とかつけれる。
c ブレークポイントとかから離れて、処理を継続する。
b ブレークポイント設定。関数名とか引数につける。
n 今いる関数からでるまで継続。
ni アセンブリの一命令実行。
i r レジスタの内容表示。
i b ブレークポイントの表示。
set メモリ書き込み。
p いろいろ表示。
x メモリ内容表示。

printは変数とかレジスタの内容を表示してくれて、
x系はアドレスから中身を表示する。

こんなもん?

x系

オプション足せる。

w 4バイ
f float(?)
c 文字
x 16進数
s 文字列

x/wみたいにして使う。
一回オプションつけると、以後そのままになる。
x/5wとかすると5つ4バイト表示してくれるし、
x/10sだと10文字列。(\x00が10個現れるまで)

式の表記法

レジスタには$つける。$eax,$al,$eip,$eflags。
16進数にはちゃんと0xつけよう。
breakpoint設定時、引数に関数名を渡すが、*の後にアドレスでブレークできる。
setでメモリに直書き込みするときは型を書いてやらねばならない。しかしやり方忘れた。


いまんとここれでなんとかなってる。
ならなくなったら覚えてく。