anti-reversing-techniques について
anti-reversing-techniquesは、許可されたソフトウェア解析、マルウェア解析、セキュリティ研究向けのスキルです。保護機構の特定、回避策の検討、分析結果の整理、コード生成を支援し、許可された状況でのみ使用します。
主な機能
- 01バイナリ内の保護機構の特定
- 02個別の回避策の提示
- 03構造化された分析レポートの作成
- 04Python、IDAPython、GDB向け成果物の生成
- 05クロスプラットフォーム検出のトラブルシューティング
活用シーン
- 01許可されたテストでのソフトウェア保護解析
- 02マルウェアの動的解析
- 03CTFでのリバースエンジニアリング演習
- 04セキュリティ研究と検出コードの実装
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ wshobson/ agents --skill anti-reversing-techniquesインストール後、Claude Code で/anti-reversing-techniquesを入力して読み込まれたか確認します。
同梱ファイルreferences/advanced-techniques.mdreferences/details.md
詳細
許可された用途に限る: このスキルにはデュアルユースのセキュリティ技術が含まれています。バイパスまたは分析を進める前に、以下を確認してください:
- 許可の確認: ソフトウェア所有者からの明示的な書面による許可を得ているか、正当なセキュリティコンテキスト(CTF、許可されたペネトレーションテスト、マルウェア分析、セキュリティ研究)内で作業していることを確認してください
- 範囲の文書化: あなたの活動が許可された範囲内に収まっていることを確認してください
- 法令遵守: ソフトウェア保護の無許可のバイパスは法律(CFAA、DMCA の回避防止規定など)に違反する可能性があることを理解してください
正当なユースケース: マルウェア分析、許可されたペネトレーションテスト、CTF コンペティション、学術的なセキュリティ研究、所有している/権利を有するソフトウェアの分析
リバースエンジニアリング対策技術
許可されたソフトウェア分析、セキュリティ研究、マルウェア分析の際に遭遇する保護メカニズムを理解するためのものです。この知識は、アナリストが保護をバイパスして正当な分析タスクを完了するのに役立ちます。
高度な技術については、references/advanced-techniques.md を参照してください
入力 / 出力
提供するもの:
- バイナリパスまたはサンプル: 分析対象の実行ファイル、DLL、またはファームウェアイメージ
- プラットフォーム: Windows x86/x64、Linux、macOS、ARM — どのチェックが適用されるかに影響します
- 目的: 動的分析のためのバイパス、保護タイプの特定、検出コードの構築、CTF 向けの実装
このスキルが生成するもの:
- 保護の特定: 手法名(例: RDTSC タイミングチェック、PEB BeingDebugged)とバイナリ内の位置
- バイパス戦略: 各チェックを無効化するための具体的なパッチアドレス、フックポイント、またはツールコマンド
- 分析レポート: 各保護レイヤー、重大度、推奨されるバイパスを列挙した構造化された調査結果
- コード成果物: チェックのバイパスまたは実装のための Python/IDAPython スクリプト、GDB コマンドシーケンス、または C スタブ
詳細なパターンと実例
詳細なパターンのドキュメントは references/details.md にあります。上記のナビゲーション階層では不十分な場合にそのファイルを読んでください。
トラブルシューティング
検出技術が x86 では動作するが ARM では動作しない
RDTSC と CPUID は x86 専用です。ARM では、MRS x0, PMCCNTR_EL0(カーネルの PMU アクセスが必要)または clock_gettime(CLOCK_MONOTONIC) を使用してください。PEB/TEB は ARM には存在しません — /proc/self/status(Linux)または task_info(macOS)に置き換えてください。プラットフォーム固有の API を使用して検出ロジックを再構築してください。
正当なデバッガーまたは分析ツールでの誤検知
Process Monitor や AV のフックがシステムコールのレイテンシを増大させると、タイミングチェックが発火します。起動時にしきい値を較正してください: ガードされたパスを 3 回測定し、mean + 3*stddev を使用します。ptrace チェックの場合は、終了する前に /proc/<pid>/comm を介して TracerPid の comm 名を確認してください — それはデバッガーではなく、無関係な監視ツールである可能性があります。
バイパスパッチが実行を継続せずクラッシュを引き起こす
条件付きジャンプを NOP する前に、「検出」ブランチを完全にトレースしてください。それが後で必要になるヒープ状態を初期化または解放する場合、ジャンプをパッチするとそのセットアップがスキップされ、状態が破損します。代わりに、比較オペランドを期待される「クリーン」な値にパッチするか、バイトを変更するのではなく x64dbg のブレークポイントで「Set condition to always false」を使用してください。
関連スキル
binary-analysis-patterns— ELF/PE/Mach-O の静的および動的分析ワークフローmemory-forensics— プロセスメモリの取得、成果物の抽出、ライブ分析protocol-reverse-engineering— カスタムバイナリプロトコルと暗号化されたネットワークトラフィックのデコード