【注意】このサイトに記載されていることを他人に試すことは「不正アクセス禁止法」に該当する場合があります。詳しくはこちらから

黒ネコと学ぶ、Buffer Overflow 超基礎シリーズ

Thumbnail of post image 081
エクスプロイト開発を学び始めると、最初によく出てくる言葉があります。それが「Buffer Overflow(バッファオーバーフロー)」です。 この言葉を初めて見ると、と感じると思いませんか? でも、最初の考え方だけなら、じつはとてもシンプル ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 164
観測→仮説→検証→修正を回し、再現性を作る(Kali Linux) ここまでで、「止める」「レジスタを見る」「スタックを見る」「メモリを覗く」を体験しました。最終回は、GDBを使って「論理的に考える型」を完成させる回になります。 最終回のゴ ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 001
xコマンド/16進数/little endianの壁を壊す(Kali Linux)  レジスタ(RIP/RSP)が分かってくると、次に必ずこう思います。RSPが指している「先」には何があるの? それが「メモリ」です。そしてここで私たち多くの ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 091
第5回で、スタックは「関数呼び出しの履歴」であり、戻り先情報が積まれる現場だと体感しました。今回は、そこに”CPU視点“を足します。この記事のゴールは3つだけです。・レジスタを数字ではなく意味で読む。・最重要3レジス ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 006
BOF(バッファオーバーフロー)を理解するうえで、最重要の土台は「スタック」です。スタックが分かると、次が“論理”で説明できるようになります。※スタックとは、プログラムの実行中に関数の呼び出し情報(引数、戻り先、ローカル変数など)を一時的に ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 126
GDBで最初に身につけるべき「核」は、コマンド暗記ではなく「止め方」です。なぜなら、止められなければ観測できず、観測できなければ理解できないからです。 今回のゴールは3つだけ。・ブレークポイントを「時間停止」として理解する。・どこで止めると ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 125
GDBが難しいと感じる一番の原因は、やっぱり「壊しそう」とか「戻れなさそう」という不安ですね。でも、GDBは「見る道具」です。正しく使えば何も壊れません。 今回のゴールは次の3つです。・安全ルールを知る。(安心して触れる)・基本操作:run ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 026
第1回で「GDBは止めて観測する道具」として体験しましたね。第2回は次の2点を「感覚でつかむ」回になります。 ・CPUは何を覚えて動いているのか?(レジスタ)・メモリのどこを見ればよいのか?(スタック中心) この記事のゴールは、RIP/RS ...

黒ネコと学ぶ、GDBを使ったエクスプロイト開発への第一歩

Thumbnail of post image 141
GDBを少しかじった方は「GDBは難しい」「黒い画面が怖い」と言われます。でも理由はシンプルで、何を見ているツールかが見えないからなんですね。 この記事のゴールは2つだけです。・GDBの役割(なぜ必要か)を、図で理解します。・Kali Li ...

黒ネコと学ぶ、論理的エクスプロイト開発への道

Thumbnail of post image 154
バッファオーバーフローは「メモリがはみ出す」だけで終わりません。特に怖いのは、はみ出しが「リターンアドレス」に到達したときです。リターンアドレスは「関数が終わったあとに戻る場所」を示す値なので、ここが壊れると CPUが次に実行する場所が変わ ...