コース目次 / 第3章
まとめ — 読んでから、動かす
objdumpによる静的解析でXOR判定を暴いた流れを畳みます。revカテゴリが実行せずに論理を読む力を試すカテゴリだったと再確認し、次のカテゴリへ送り出します。
自作したクラックミーを、一度も総当たりせずに解きました。答えは、命令の中にすでに書かれていました。
mini-ctf-rev・早見表
| 手がかり | 読み方 | 得られる情報 |
|---|---|---|
mov DWORD/WORD/BYTE PTR [...],即値 |
リトルエンディアンでバイト列を復元 | 比較対象の定数(今回は暗号化されたtarget) |
単純なxorやcmpの並び |
ロジックをそのまま読み取る | 判定アルゴリズム(今回はXOR) |
-g付きビルドなら関数名も見える |
objdump -dの<関数名>:を探す |
読むべき箇所の見当 |
実行して総当たりするのではなく、まず読む。今回のように定数がそのまま埋め込まれているケースは初歩的ですが、「命令の即値オペランドから定数を読み取る」「比較ロジックを追う」という基本の読み方は、より複雑なrev問題でも変わりません。sec-asmで学んだアセンブリの文法が、ここで実際に「鍵を暴く」道具になりました。
次の道
好きな順で、次のカテゴリに進んでください。pwn(メモリの制御を奪う)、forensics(残されたデータを掘る)、misc(檻を破る)——どれも ctf-intro の後に置かれています。法と倫理の一線は、この先も同じです。
お疲れさまでした。次は、読むだけでなく、メモリの制御そのものを奪いに行きます。
こうなっていればOK
この章で卒業です。
この章はまだ完了していません。
保存できませんでした(プライベートブラウズ中かもしれません)。この端末に進捗は残りませんが、先へは進めます。