Agent Skills by ALSEL
Anthropic Claudeソフトウェア開発⭐ リポ 0品質スコア 50/100

ctf-reverse

コンパイル済みバイナリ・APK・WASM・ファームウェア・カスタムVM・バイトコードなど、難読化・パック・仮想化されたターゲットの動作を解析するためのリバースエンジニアリング手法を提供するスキル。CTFにおいて脆弱性の特定や問題の解決前にターゲットの内部構造を理解する必要がある場合、またはアンチデバッグ・アンチ解析ロジックの突破が必要な場合に使用する。脆弱性がすでに判明していてエクスプロイトのみが残っている場合はpwnスキルを、純粋なWebやフォレンジック・暗号問題にはそれぞれ専用スキルを使用すること。

description の原文を見る

Provides reverse engineering techniques for CTF challenges. Use when the main job is to understand how a compiled, obfuscated, packed, or virtualized target works before exploiting or solving it, including binaries, APKs, WASM, firmware, custom VMs, bytecode, game clients, malware-like loaders, and anti-debug or anti-analysis logic. Do not use it when the vulnerability is already understood and the remaining task is exploitation; use pwn instead. Do not use it for pure web workflows, log or disk forensics, or standalone crypto problems unless reversing the implementation is the real blocker.

SKILL.md 本文

CTF リバースエンジニアリング

RE チャレンジの実用的なリファレンス。詳細なテクニックについては、サポートファイルを参照してください。

前提条件

Python パッケージ (全プラットフォーム):

pip install frida-tools angr qiling uncompyle6 capstone lief z3-solver
# Python 3.9+ バイトコード用: pycdc をソースからビルド
git clone https://github.com/zrax/pycdc && cd pycdc && cmake . && make

Linux (apt):

apt install gdb radare2 binutils strace ltrace apktool upx

macOS (Homebrew):

brew install gdb radare2 binutils apktool upx ghidra

radare2 プラグイン:

r2pm -ci r2ghidra   # radare2 向けネイティブ Ghidra デコンパイラ

手動インストール:

  • pwndbg — Linux: GitHub, macOS: brew install pwndbg/tap/pwndbg-gdb

追加リソース

  • tools.md - 静的分析ツール (GDB、Ghidra、radare2、IDA、Binary Ninja、dogbolt.org、Capstone 対応 RISC-V、Unicorn エミュレーション、Python バイトコード、WASM、Android APK、.NET、パック済みバイナリ)
  • tools-dynamic.md - 動的分析ツール: Frida (フッキング、アンチデバッグ回避、メモリスキャン、Android/iOS)、angr シンボリック実行 (パス探索、制約、CFG)、lldb (macOS/LLVM デバッガー)、x64dbg (Windows)
  • tools-emulation.md - エミュレーションフレームワークとサイドチャネルツール: Qiling (クロスプラットフォーム OS レベルエミュレーション)、Triton (DSE)、Intel Pin 命令カウント + 遺伝的アルゴリズム サイドチャネル、オペコードのみのトレース再構成、LD_PRELOAD タイムフリーズおよびメモリ比較サイドチャネル (バイト単位ブルートフォース用)
  • tools-advanced.md - 高度なツール (パート 1): VMProtect/Themida 分析、バイナリ差分 (BinDiff、Diaphora)、難読化解除フレームワーク (D-810、GOOMBA、Miasm)、Qiling フレームワーク、Triton DSE、Manticore、Rizin/Cutter、RetDec、カスタム VM バイトコード LLVM IR へのリフティング
  • tools-advanced-2.md - 高度なツール (パート 2): 高度な GDB (Python スクリプティング、ブルートフォース、条件付きブレークポイント、ウォッチポイント、rr を用いたリバースデバッギング、pwndbg/GEF)、高度な Ghidra スクリプティング、パッチング (Binary Ninja API、LIEF)、GDB 制約抽出 + ILP ソルバー (BackdoorCTF 2017)、GDB 位置エンコード入力ゼロフラグ監視 (EKOPARTY 2017)、LD_PRELOAD 実行のみバイナリダンプ (BackdoorCTF 2017)、PEDA current_inst ビット単位フラグスクレーパー (CONFidence CTF 2019 Teaser)
  • anti-analysis.md - アンチ分析タクソノミー: Linux アンチデバッグ (ptrace、/proc、タイミング、シグナル、直接シスコール)、Windows アンチデバッグ (PEB、NtQueryInformationProcess、ヒープフラグ、TLS コールバック、HW/SW ブレークポイント検出、例外ベース、スレッド隠蔽)、アンチ VM/サンドボックス (CPUID、MAC、タイミング、アーティファクト、リソース)、アンチ DBI (Frida 検出/回避)、コード整合性/自己ハッシング、アンチ逆アセンブル (不透明述語、ジャンクバイト)、MBA 特定/単純化、包括的な回避戦略
  • anti-analysis-ctf.md - CTF ライトアップテクニック: 実行モード切り替え用 SIGILL ハンドラー (Hack.lu 2015)、strace カウントによる SIGFPE シグナルハンドラーサイドチャネル (PlaidCTF 2017)、Keystone および Unicorn による命令トレース反転 (MeePwn 2017)、スタックフレーム操作による呼び出しなし関数チェーニング (THC 2018)、process_vm_writev による親パッチ済みチャイルドバイナリダンプ (Google CTF Quals 2018)
  • patterns.md - 基礎バイナリパターン: カスタム VM、アンチデバッギング、ナノマイト、自己修正コード、XOR 暗号、混合モードステージャー、LLVM 難読化、S-box/キーストリーム、SECCOMP/BPF、例外ハンドラー、メモリダンプ、バイト単位変換、x86-64 落とし穴、カスタムマングル反転、位置ベース変換、16 進数エンコード文字列比較、シグナルベースバイナリ探索
  • patterns-runtime.md - ランタイムパッチングおよびオラクルテクニック: マルウェアアンチ分析回避、マルチステージシェルコードローダー、タイミング サイドチャネル攻撃、マルチスレッドアンチデバッグ (おとり + シグナルハンドラー MBA付き) (ApoorvCTF 2026)、INT3 パッチ + コアダンプブルートフォース オラクル (Pwn2Win 2016)、シグナルハンドラーチェーン + LD_PRELOAD オラクル (Nuit du Hack 2016)、printf フォーマット文字列 VM デコンパイル Z3 へ (SECCON 2017)、四分木 再帰画像フォーマットパーサー (Google CTF Quals 2018)
  • patterns-ctf.md - 競技固有パターン (パート 1): 隠れたエミュレーターオペコード、LD_PRELOAD キー抽出、SPN 静的抽出、画像 XOR スムーズさ、バイト単位暗号、数学的収束ビットマップ、Windows PE XOR ビットマップ OCR、2 段階 RC4+VM ローダー、GBA ROM ミート・イン・ザ・ミドル、Sprague-Grundy ゲーム理論、カーネルモジュール迷路解きー、マルチスレッド VM チャネル、バックドア共有ライブラリ検出 (文字列差分経由)、カスタム binfmt カーネルモジュール (RC4 フラットバイナリ)、ハッシュ解決インポート / ノーインポートランサムウェア、ELF セクションヘッダー破損アンチ分析
  • patterns-ctf-2.md - 競技固有パターン (パート 2): マルチレイヤー自己復号ブルートフォース、埋め込み ZIP+XOR ライセンス、スタック文字列難読化解除、プレフィックスハッシュブルートフォース、CVP/LLL 格子 (整数検証用)、決定木関数難読化、GF(2^8) ガウス消去、ROP チェーン難読化分析 (ROPfuscation)
  • patterns-ctf-3.md - 競技固有パターン (パート 3): Z3 単一行 Python 回路、スライディングウィンドウ popcount、キーボード LED モールス信号 (ioctl 経由)、C++ デストラクタ隠し検証、システムコール サイドエフェクト メモリ破損、MFC ダイアログ イベントハンドラー、VM 順序キーチェーン ブルートフォース、Burrows-Wheeler 変換反転、OpenType フォント リガチャ悪用、GLSL シェーダー VM (自己修正コード付き)、命令カウンター 暗号化状態、バッチ crackme 自動化 (objdump 経由)、fork+pipe+デッドブランチ アンチ分析、TensorFlow DNN 反転 (シグモイド層反転経由)、BPF フィルター分析 (カーネル JIT x64 アセンブリへ)
  • languages.md - 言語固有: Python バイトコード & オペコード再マッピング、Python バージョン固有バイトコード、Pyarmor 静的アンパック、DOS スタブ、Unity IL2CPP、HarmonyOS HAP/ABC、Brainfuck/難解言語 (+ BF 文字ごと静的分析、BF サイドチャネル 読み取り数オラクル、BF 比較イディオム検出)、UEFI、C への変換、コードカバレッジ サイドチャネル、OPAL 関数型反転、非全単射置換、FRACTRAN プログラム反転
  • languages-platforms.md - プラットフォーム/フレームワーク固有: Roblox place ファイル分析、Godot ゲームアセット抽出、Rust serde_json スキーマ復元、Android JNI RegisterNatives 難読化、Android DEX ランタイム バイトコード パッチング (/proc/self/maps 経由)、Android ネイティブ .so ロード回避 (新規プロジェクト経由)、Frida Firebase Cloud Functions 回避、Verilog/ハードウェア RE、プレフィックス単位ハッシュ反転、Ruby/Perl ポリグロット制約充足、Electron ASAR 抽出 + ネイティブバイナリ分析、Node.js npm ランタイム イントロスペクション
  • languages-compiled.md - Go バイナリ反転 (GoReSym、ゴルーチン、メモリレイアウト、チャネル ops、embed.FS、Go バイナリ UUID パッチング C2 列挙用)、Rust バイナリ反転 (デマングリング、Option/Result、Vec、panic 文字列)、Swift バイナリ反転 (デマングリング、プロトコルウィットネステーブル)、Kotlin/JVM (コルーチン状態機)、Haskell GHC CMM 中間言語 (再帰構造分析用)、C++ (vtable 再構築、RTTI、STL パターン)
  • platforms.md - プラットフォーム固有 RE: macOS/iOS (Mach-O、コード署名、Objective-C ランタイム、Swift、dyld、脱獄回避)、組み込み/IoT ファームウェア (binwalk、UART/JTAG/SPI 抽出、ARM/MIPS、RTOS)、カーネルドライバー (Linux .ko、eBPF、Windows .sys)、ゲームエンジン (Unreal Engine、Unity、アンチチート、Lua)、自動車 CAN バス
  • platforms-hardware.md - ハードウェアおよび高度なアーキテクチャ RE: HD44780 LCD コントローラー GPIO 再構築、RISC-V 高度な機能 (カスタム拡張、特権モード、デバッギング)、ARM64/AArch64 反転および悪用 (呼び出し規約、ROP ガジェット、qemu-aarch64-static エミュレーション)
  • field-notes.md - クイックリファレンスノート: バイナリタイプ、アンチデバッギング回避、特殊パターン、CTF ケース注記

ピボットが必要な場合

  • バイナリを既に理解していて、ヒープ、ROP、またはカーネル悪用が必要な場合は、/ctf-pwn に切り替えてください。
  • チャレンジが本当に削除されたファイル、PCAP データ、またはディスクアーティファクトの復元についてである場合は、/ctf-forensics に切り替えてください。
  • ターゲットが Web アプリで、小さなクライアント側ヘルパースクリプトだけを反転している場合は、/ctf-web に切り替えてください。
  • バイナリが機械学習モデルを実装しており、チャレンジがモデル攻撃または敵対的入力についてである場合は、/ctf-ai-ml に切り替えてください。
  • 反転されたバイナリのコアロジックが暗号化アルゴリズムまたは数学問題である場合は、/ctf-crypto に切り替えてください。
  • バイナリが C2、パック、または回避動作を持つ実際のマルウェアサンプルである場合は、/ctf-malware に切り替えてください。
  • チャレンジがトイ VM、エンコードパズル、またはおもちゃ VM ではなく pyjail である場合は、/ctf-misc に切り替えてください。

問題解決ワークフロー

  1. 文字列抽出から始める - 多くの簡単なチャレンジにはプレーンテキストフラグがあります
  2. ltrace/strace を試す - 動的分析は反転なしにフラグを明かすことが多いです
  3. Frida フッキングを試す - strcmp/memcmp をフック反転なしで期待値をキャプチャします
  4. angr を試す - シンボリック実行は多くのフラグチェッカーを自動的に解決します
  5. Qiling を試す - 外国アーキテクチャバイナリをエミュレートするか、アーティファクトなしで重いアンチデバッグを回避します
  6. 制御フローをマップしてから 実行を修正します
  7. スクリプトを介した手動プロセスの自動化 (r2pipe、Frida、angr、Python)
  8. 仮定を検証する デコンパイラ出力を比較してください (dogbolt.org サイドバイサイド表示用)

クイックウィン (まず試してください!)

# プレーンテキストフラグ抽出
strings binary | grep -E "flag\{|CTF\{|pico"
strings binary | grep -iE "flag|secret|password"
rabin2 -z binary | grep -i "flag"

# 動的分析 - フラグを直接キャプチャすることが多い
ltrace ./binary
strace -f -s 500 ./binary

# 16 進ダンプ検索
xxd binary | grep -i flag

# テスト入力で実行
./binary AAAA
echo "test" | ./binary

初期分析

file binary           # タイプ、アーキテクチャ
checksec --file=binary # セキュリティ機能 (pwn 用)
chmod +x binary       # 実行可能にする

メモリダンプ戦略

重要な洞察: プログラムに答えを計算させ、ダンプします。最終比較で中断 (b *main+OFFSET)、正しい長さの任意の入力を入力し、x/s $rsi を使用してコンピューティングフラグをダンプします。

デコイフラグ検出

パターン: 実際のチェック前の複数の偽ターゲット。異なる成功メッセージを持つ複数の比較ターゲットをシーケンス内で探します。最終比較、それ以前の比較ではなく FINAL 比較でブレークポイントを設定します。

GDB PIE デバッギング

PIE バイナリはベースアドレスをランダム化します。相対ブレークポイントを使用します:

gdb ./binary
start                    # PIE ベース解決を強制する
b *main+0xca            # main に相対
run

比較方向 (重大!)

2 つのパターン: (1) transform(flag) == stored_target — 変換を反転します。(2) transform(stored_target) == flag — フラグは変換されたデータです。ストアされたターゲットに変換を適用するだけです。

一般的な暗号化パターン

  • 単一バイトでの XOR - 256 個すべての値を試す
  • 既知の平文での XOR (flag{CTF{)
  • ハードコードされたキーでの RC4
  • カスタム置換 + XOR
  • XOR 位置インデックス (^ i または ^ (i & 0xff)) レイヤー化 (繰り返しキー付き)

クイックツールリファレンス

# Radare2
r2 -d ./binary     # デバッグモード
aaa                # 分析
afl                # 関数リスト
pdf @ main         # main を逆アセンブル

# Ghidra (ヘッドレス)
analyzeHeadless project/ tmp -import binary -postScript script.py

# IDA
ida64 binary       # IDA64 で開く

ディープダイブノート

最初のトリアージ ラウンド後、対象の種類がわかったら field-notes.md を使用します。

  • ターゲットフォーマット: Python バイトコード、WASM、Android、Flutter、.NET、UPX、Tauri
  • テクニック注記: アンチデバッグ回避、VM 分析、x86-64 落とし穴、反復ソルバー、Unicorn、タイミング サイドチャネル
  • プラットフォーム注記: Godot、Roblox、macOS/iOS、組み込みファームウェア、カーネルドライバー、ゲームエンジン、Swift、Kotlin、Go、Rust、D
  • ケース注記: 最新の CTF 固有の反転パターンおよび古い古典的なチャレンジパターン

ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ

詳細情報

作者
ljagiello
リポジトリ
ljagiello/ctf-skills
ライセンス
MIT
最終更新
不明

Source: https://github.com/ljagiello/ctf-skills / ライセンス: MIT

関連スキル

汎用ソフトウェア開発⭐ リポ 39,967

doubt-driven-development

重要な判断はすべて、本番環境への展開前に新しい視点から対抗的レビューを実施します。速度より正確性が重要な場合、不慣れなコードを扱う場合、本番環境・セキュリティに関わるロジック・取り消し不可の操作など影響度が高い場合、または後でバグを修正するよりも今検証する方が効率的な場合に活用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 1,175

apprun-skills

TypeScriptを使用したAppRunアプリケーションのMVU設計に関する総合的なガイダンスが得られます。コンポーネントパターン、イベントハンドリング、状態管理(非同期ジェネレータを含む)、パラメータと保護機能を備えたルーティング・ナビゲーション、vistestを使用したテストに対応しています。AppRunコンポーネントの設計・レビュー、ルートの配線、状態フローの管理、AppRunテストの作成時に活用してください。

by yysun
OpenAIソフトウェア開発⭐ リポ 797

desloppify

コードベースのヘルスチェックと技術負債の追跡ツールです。コード品質、技術負債、デッドコード、大規模ファイル、ゴッドクラス、重複関数、コードスメル、命名規則の問題、インポートサイクル、結合度の問題についてユーザーが質問した場合に使用してください。また、ヘルススコアの確認、次の改善項目の提案、クリーンアップ計画の作成をリクエストされた際にも対応します。29言語に対応しています。

by Git-on-my-level
汎用ソフトウェア開発⭐ リポ 39,967

debugging-and-error-recovery

テストが失敗したり、ビルドが壊れたり、動作が期待と異なったり、予期しないエラーが発生したりした場合に、体系的な根本原因デバッグをガイドします。推測ではなく、根本原因を見つけて修正するための体系的なアプローチが必要な場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

test-driven-development

テスト駆動開発により実装を進めます。ロジックの実装、バグの修正、動作の変更など、あらゆる場面で活用できます。コードが正常に動作することを証明する必要がある場合、バグ報告を受けた場合、既存機能を修正する予定がある場合に使用してください。

by addyosmani
汎用ソフトウェア開発⭐ リポ 39,967

incremental-implementation

変更を段階的に実施します。複数のファイルに影響する機能や変更を実装する場合に使用してください。大量のコードを一度に書こうとしている場合や、タスクが一度では完結できないほど大きい場合に活用します。

by addyosmani
本サイトは GitHub 上で公開されているオープンソースの SKILL.md ファイルをクロール・インデックス化したものです。 各スキルの著作権は原作者に帰属します。掲載に問題がある場合は info@alsel.co.jp または /takedown フォームよりご連絡ください。
原作者: ljagiello · ljagiello/ctf-skills · ライセンス: MIT