Reverse Engineering: ソースコードなしでソフトウェアを読む
Reverse Engineering は、元のソースコードにアクセスできなくても、コンパイル済みソフトウェアの動作原理を理解するために行う分析の学問です。セキュリティ研究者は脆弱性を発見するために使用し、マルウェアアナリストは悪意あるコードを解析するために使用し、ファームウェアエンジニアは組み込みシステムを理解するために使用します。このトラックは全体をカバーします。生のバイナリフォーマットと Assembly から静的および動的解析を経て、エクスプロイト開発と高度な anti-RE テクニックに至るまで。
学べること
バイナリの基礎から始まります。実行可能ファイルの形式、メモリレイアウト、高級言語がどのようにマシン命令にマッピングされるかです。そこから、実際のディスアセンブリ出力に表れる x86/x64 Assembly を読んで理解していきます。静的解析ツールを使ってバイナリを実行せずに検査し、その後、動的解析とデバッグに移行してライブ実行を観察します。後続のコースでは、マルウェア解析、コンパイラ最適化とそれがどのように意図を曖昧にするか、自動化された静的解析のためのスクリプティング、野生環境で使用される anti-reverse-engineering トリックをカバーします。このトラックは、ファームウェアと組み込みシステム RE、脆弱性研究、エクスプロイト開発、およびこの分野の今後の方向性についてのサーベイで締めくくります。
学習パス
12 のコースが A1 から C2 にかけて配置されています。オープニングコースは無料の最初のプレビューで A1 レベルのコア概念を紹介します。次の 2 つのコース(A2–B2)は、バイナリリテラシーと Assembly 読解スキルを構築します。その後、4 つの B2/C1 コースが主要な解析ワークフローをカバーします。静的ツール、動的デバッグ、マルウェアの基礎、およびスクリプティングです。最後の 4 つのコースは C1–C2 レベルで動作し、最も難しい内容に取り組みます。コンパイラ最適化とそれがディスアセンブリに与える影響、ファームウェアと組み込みターゲット、脆弱性研究とエクスプロイト開発、および現在の分野のトレンドを含む高度なトピックです。
学習の仕組み
各コースは短く、焦点を絞ったレッスンに分かれており、組み込みエディタで実践的な演習を行います。Assembly を読んだり、バイナリに注釈を付けたり、リアルタイムフィードバック付きで実際の解析タスクに取り組んだりします。命令シーケンス、ツールフラグ、または見慣れないバイナリ構造について行き詰まった場合、AI チューターはすべてのステップで利用できます。