x86 Assembly: CPU が実際に実行するコードを書く
アセンブリ言語は、バイナリを手作業で書かない限り、ベアメタルに最も近い言語です。すべての命令は CPU 操作に直接マップされます。実行時環境なし、ガベージコレクタなし、ハードウェアが何をしているかを隠す抽象化もなし。このトラックは x86 Assembly を初原則からカーネルレベルプログラミングまでカバーし、コンパイラからエクスプロイト開発まで、すべてを理解するための基礎を提供します。
学習内容
レジスタ、メモリレイアウト、データ型から始まり、基本命令と制御フロー、スタック管理、手続き呼び出し規約へと進みます。そこから Assembly と C/C++ コードのインターフェース、システムコール発行、割り込みと例外処理、浮動小数点ユニットと SIMD 命令を扱います。上級コースでは、デバッグとリバースエンジニアリング、メモリ保護メカニズム、仮想化、カーネルレベルドライバプログラミング、キャッシュ動作からセキュリティ関連の低レベル技法までを含む、低レベルパフォーマンス最適化とエクスプロイテーション技法に対応します。
学習パス
12 コースが A2 から C2 をカバーしています。無料の入門コースは x86 構文とメンタルモデルを確立します。B1 と B2 コースは実践的コアを構築します — レジスタ、制御フロー、スタック、手続き。トラックは C1 の深さへと移行し、C/C++ 相互運用性、システムコール、割り込み、SIMD、リバースエンジニアリングをカバーする 5 つのコース。Memory Protection and Virtualization と Kernel-Level Programming and Drivers の 2 つの C2 コースが続き、キャッシュ動作からセキュリティ関連の低レベル技法まで、すべてをまとめた Performance Optimization and Exploitation の最終コースに至ります。
仕組み
各コースは、内蔵コードエディタで完成させ、リアルタイムフィードバックを得られる、短くフォーカスされた短編レッスンに分かれています。命令エンコーディングや説明のつかない segfault で行き詰まった場合は、AI チューターが利用できます。