Perl入学式を卒業したばかりの方向けのシリーズ記事、「Perlで作るブルートフォース攻撃シミュレータ」の目次ページです。
本シリーズでは、パスワードの総当たり攻撃(ブルートフォースアタック)を行うツールを作成しながら、プログラミングにおける重要な概念である「反復処理の制御」と「Iterator(イテレータ)パターン」を学びます。
ネストされたforループの限界、再帰処理の複雑さを体験し、それらをオブジェクト指向(Moo)を使ってエレガントに解決していく過程を追体験できます。
記事一覧
第1回: Perlでパスワードクラッカーを作ろう - 3桁の秘密
3桁の数字パスワードを特定する単純なスクリプトを作成します。for文のネストで総当たり攻撃を行う、最も基本的なアプローチです。第2回: 4桁、5桁…ループが止まらない - 多重ループの絶望
パスワードの桁数が増えた時、for文のネストでは対応できなくなる問題に直面します。再帰呼び出しを使った解決策とその難しさについて解説します。第3回: 組み合わせ生成機を作る - Mooでループをオブジェクトにする
Mooを使って「次のパスワード候補」を生成するクラスを作成します。複雑なループ構造をオブジェクトの中に隠蔽し、スッキリとしたコードを実現する方法を学びます。第4回: 辞書攻撃もしたい - 攻撃手法の切り替え
英単語リストを使った辞書攻撃機能を追加します。Iteratorインターフェースを守ることで、ブルートフォースと辞書攻撃を自由に切り替えるポリモーフィズムを学びます。第5回: 攻撃ツール完成 - Iteratorパターンという武器
完成した攻撃ツールを振り返り、これが「Iteratorパターン」であることを解説します。大量のデータをメモリに展開せずに扱う「遅延評価」の重要性を総括します。対象読者
- Perl入学式を卒業したばかりの入門者
- Mooで覚えるオブジェクト指向プログラミングシリーズを読了した方
- デザインパターンを「動くモノ」を作りながら学びたい方
技術スタック
- Perl v5.36以上(signatures使用)
- Moo(Minimalist Object Orientation)
さあ、ハッカーの道具箱作りを始めましょう!
