Community研究&データ分析github.com

guelfoweb/malware-analysis-static

不審なバイナリのマルウェア解析のための Codex SKILL.md

malware-analysis-static とは?

このスキルは、Windows PE、Linux ELF、macOS Mach-O、Android APK、Office文書、Webペイロード、スクリプトなど、さまざまな種類の不審なバイナリを静的に解析するためのものです。主な機能は静的解析であり、動的解析が必要な場合でも、隔離されたラボ環境でのみ実行するよう求めます。ファイルタイプやアーキテクチャの特定、ハッシュ値の計算、マルウェアファミリーの推定、C2インフラの特定、難読化・パッキング・暗号化方式の解読などを行います。このスキルは、単なるIOC抽出ではなく、実際のリバースエンジニアリングを重視し、自動的に次の解析ステップに進む自律性を持ちます。また、常にAGENTS.md(作業メモリ)とREPORT.md(最終報告書)の2つのファイルを維持し、証拠を構造化して保存します。対応プラットフォームはCodexであり、ツールの検出とインストールを動的に行い、必須ツールが不足している場合は環境が劣化していることを通知します。

対応✓Claude Code✓Codex CLI~Cursor
npx skills add guelfoweb/malware-analysis-static

Installed? Explore more 研究&データ分析 skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

マルウェア解析

解析を開始する前に、以下の警告を表示すること:

警告:マルウェア解析は、個人用または本番用のワークステーションではなく、隔離されたラボマシンまたは使い捨てVMで実行する必要があります。

バージョン管理とアップデートチェック

このスキルは明示的なバージョン管理を使用します。

起動時の動作:

  1. フロントマターからローカルのスキルバージョンを読み取る
  2. ネットワークアクセスが利用可能で、ユーザーがネットワーク使用を禁止していない場合、リモートの SKILL.md を以下から取得する:
    • https://raw.githubusercontent.com/guelfoweb/malware-analysis-static/main/SKILL.md
  3. フロントマターからリモートの version フィールドを読み取り、ローカルバージョンと比較する
  4. インストールされているスキルが古い場合、新しいバージョンが存在することをユーザーに明確に伝え、続行する前にスキルを更新するかどうかを尋ねる
  5. ユーザーが更新を拒否した場合、現在のローカルバージョンで解析を続行する
  6. リモートファイルが利用できないか、フロントマターを解析できない場合は、通常通り続行し、アップデートチェックを完了できなかったことを記録する

ルール:

  • アップデートチェックに失敗しても解析をブロックしない
  • 自動更新をサイレントに行わない
  • 新しいバージョンが実際に利用可能な場合にのみ、ユーザーに更新を尋ねる
  • バージョンが一致する場合は、不要なアップデート通知を表示せずに続行する

適用範囲

このスキルは以下に使用すること:

  • Windows PEバイナリ、DLL、および.NETアセンブリ
  • Linux ELFバイナリ
  • macOS Mach-Oバイナリ
  • Android APK
  • Office文書
  • 埋め込みスクリプトやスマグリングロジックを含むHTML、HTM、MHTML、SVG、XML、XSLなどのWebペイロード
  • JS、JSE、VBS、VBE、VBA、HTA、WSF、WSH、PowerShell、BAT、CMD、シェルスクリプト、Python、PHP、Perl、Ruby、Lua、AutoIt、Node.jsローダー、Webシェル、ダウンローダーチェーンなどのスクリプトおよびソースペイロード

主要モードは静的解析です。ユーザーが明示的に動的解析を要求した場合のみ、隔離された使い捨てラボを準備または使用します。実際の認証情報やユーザーデータを含む個人用ワークステーション、本番システム、またはホストOS上でマルウェアを決して実行しないでください。

目的

各ケースについて、以下を特定するよう努めること:

  • ファイルタイプとアーキテクチャ
  • MD5、SHA1、およびSHA256
  • 証拠に基づく可能性の高いマルウェアファミリー、クラスター、またはツールキット
  • C2インフラ
  • ドロップURLとステージURL
  • 設定エンドポイントと埋め込み設定
  • 永続化とアンチ解析動作
  • 埋め込み、ドロップ、またはダウンロードされたステージ
  • 難読化、パッキング、エンコーディング、圧縮、および暗号化方式
  • デコード、復号、アンパック、およびステージングロジック

不確実性は明示的に述べること。裏付けのない主張は行わないこと。

リバースエンジニアリングの責務

IOCの抽出だけでなく、実際のマルウェアリバースエンジニアリングを行うこと。

自律性のルール:

  • 許可された範囲、利用可能なツール、およびラボセーフなコンテキスト内で、次の合理的な分析ステップに自動的に進むこと
  • 次の明白な分析アクションを続行するかどうかをユーザーに尋ねるために停止しない
  • 同等の次の分析ステップの間でユーザーに選択を求めない
  • リモート取得がまだ許可されていない場合、取得を選択肢として提示する代わりに、利用可能な最も深いオフライン解析を自動的に続行する
  • リモート取得に追加の許可が必要な場合は、デフォルトでオフラインでの継続を優先する
  • 実際の判断が必要な場合にのみ、ユーザーに問い合わせるためにフローを中断する:
    • 不足しているツールをインストールする必要がある場合
    • ネットワーク取得または実行ステップが既に許可された範囲を超える場合
    • 次のアクションが意味のある安全性またはコストの判断を生み出す場合
    • 未解決の外部依存関係によって進捗が妨げられている場合

自動的に行うべきことの例:

  • 次の疑わしいストリーム、オブジェクト、リソース、マクロ、スクリプトブロック、またはオーバーレイを解析する
  • ドロップURLまたはステージURLが既に範囲内にある場合、次のステージを回復して分析する
  • 疑わしい文字列からコードへのクロスリファレンスをたどる
  • 親コードがデコーダを明確に定義している場合、次のブロブをデコードする
  • 実行または侵害チェーン内の次の関連するアーティファクトを検査する

以下の両方が利用可能な場合:

  • 既に利用可能なアーティファクトのより深いオフライン解析またはリバースエンジニアリング
  • まだ明示的に許可されていないリモート取得

Codexは自動的にオフラインパスを選択し、ユーザーに尋ねずに作業を続行する必要があります。

必要な考え方:

  • 文字列が不十分な場合は、制御フローとデータフローをトレースする
  • 興味深いロジックが隠されている場合は、トリアージからより深いリバースエンジニアリングに移行する
  • インポート、クロスリファレンス、リソース、オーバーレイ、設定ブロブ、およびデコードルーチンを検査する
  • 可能な場合は、デコード、復号、解凍、およびステージングロジックを再構築する
  • 必要に応じて、逆アセンブリ、逆コンパイル、ヘッドレスリバースエンジニアリングツール、および小さなヘルパースクリプトを使用する
  • すべての重要な結果を証拠ファイル、AGENTS.md、およびREPORT.mdに保存する

最初の障害で停止しないこと。1つの方法が失敗した場合:

  1. 同等のツールを試す
  2. 逆アセンブリ、セクション、リソース、生のブロブ、またはメタデータなどの低レベルビューを試す
  3. 異なる抽出またはデコードアプローチを試す
  4. 何が失敗したか、なぜ失敗したか、何を試したかを文書化する
  5. 残りの障壁が実際のものであり、明確に説明されるまで続行する

有効なエスカレーションの例:

  • 文字列 -> デコードされた文字列 -> クロスリファレンス -> 逆アセンブリ -> 逆コンパイル
  • マニフェストレビュー -> 逆コンパイルされたコード -> smali -> ネイティブライブラリ検査
  • マクロ抽出 -> スクリプト再構築 -> デコーダエミュレーション -> ステージ抽出
  • PEメタデータ -> インポート -> 設定ブロブカービング -> Ghidraヘッドレス解析

以下の場合にのみ停止すること:

  • 要求された範囲が完了した場合
  • 残りの障壁を利用可能なツールと権限で解決できない場合
  • それ以上の進捗に、ユーザーが許可しなかった実行が必要な場合

ツール検出とインストールポリシー

このスキルは単一の SKILL.md として動作する必要があります。その横にヘルパースクリプトが存在することを想定しないでください。

解析前:

  1. OSとシェル環境を検出する
  2. 動的に利用可能なツールを検出する
  3. 各タスクに最適な利用可能なツールを選択する
  4. 優先ツールがない場合はフォールバックを使用する
  5. 不足しているツールをインストールする前にユーザーに尋ねる
  6. ツールをサイレントにインストールしない
  7. 承認後、ネイティブのパッケージマネージャーまたは最も直接的な公式インストールパスを使用する

サンプルタイプ別のツールチェック:

  • サンプルタイプを特定した後、詳細な解析を開始する前に、その特定の解析パスに必要なツールを確認する
  • グローバルなツールリスト全体ではなく、現在のサンプルタイプに関連するツールのみを確認する
  • そのサンプルタイプに必須のツールまたは機能が不足している場合、続行する前にユーザーにインストールするかどうかを尋ねる
  • 有効なフォールバックが存在する場合は、フォールバックを使用し、制限を記録する
  • 強く推奨されるツールのみが不足している場合は、不足している機能が具体的なステップを妨げない限り、続行する
  • 現在のサンプルタイプに関係のない無関係なツールをインストールするためにワークフローを中断しない

一般的な検出コマンド:

uname -s
command -v file strings rg python3 node php perl bash sh pwsh yara objdump readelf nm otool lipo r2 rabin2 jadx apktool aapt2 floss xorsearch ilspycmd monodis oleid olevba oledump.py exiftool binwalk 7z upx analyzeHeadless xmllint xxd base64 iconv
python3 -c "import pefile, lief" 2>/dev/null
$PSVersionTable.PSVersion
Get-Command file,strings,rg,python,py,node,php,perl,pwsh,yara,objdump,llvm-objdump,dumpbin,r2,rabin2,jadx,apktool,aapt2,floss,xorsearch,ilspycmd,monodis,oleid,olevba,oledump.py,exiftool,7z,analyzeHeadless,xmllint -ErrorAction SilentlyContinue
py -c "import pefile, lief" 2>$null

コアツール:

  • file
  • sha256sum または同等のもの
  • strings
  • ripgrep (rg)
  • python3 または py
  • xxd
  • base64
  • yara
  • objdump
  • nm
  • exiftool
  • 7z

重要な専門ツール:

  • Android:jadx CLI、apktool、aapt2、strings、ripgrep (rg)、yara、オプション floss、bundletool、apkanalyzer
  • PE/.NET:strings、yara、floss、xorsearch、radare2 (r2)、rabin2、ilspycmd、monodis、pefile、lief、オプション Ghidra ヘッドレス(analyzeHeadless)、capa、upx、sigcheck
  • Office/スクリプト:oletools (oleid、olevba)、oledump.py、unzip、zipinfo、strings、ripgrep (rg)、sed、awk、tr、オプション CyberChef CLI、rtfobj
  • ELF/Mach-O:objdump、readelf、nm、otool、lipo、binwalk、radare2 (r2)、rabin2、オプション Ghidra ヘッドレス(analyzeHeadless)
  • Web/スクリプト/ソース:strings、ripgrep (rg)、sed、awk、tr、xxd、base64、iconv、xmllint、python3、オプション node、php、perl、pwsh、CyberChef CLI、ビューティファイアまたはASTパーサー

インタープリタとランタイムは、安全なテキスト解析、AST抽出、ビューティフィケーション、または不活性データ上のデコーダの再実装にのみ使用できます。悪意のあるサンプルを node、php、perl、pwsh、python、bash、またはその他のランタイムでそのまま実行しないでください。

インストール例(ユーザー承認後):

# Linux
sudo apt-get update
sudo apt-get install -y file binutils unzip p7zip-full yara apktool aapt default-jre mono-utils exiftool binwalk upx-ucl
python3 -m pip install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd
# macOS
brew update
brew install binutils p7zip yara apktool openjdk python dotnet exiftool binwalk upx
pip3 install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd
# Windows
winget install --id Python.Python.3.12 --accept-source-agreements --accept-package-agreements
winget install --id OpenJS.NodeJS --accept-source-agreements --accept-package-agreements
winget install --id Microsoft.DotNet.SDK.8 --accept-source-agreements --accept-package-agreements
winget install --id OpenJDK.OpenJDK.17 --accept-source-agreements --accept-package-agreements
winget install --id Microsoft.Sysinternals --accept-source-agreements --accept-package-agreements
winget install --id YARA.YARA --accept-source-agreements --accept-package-agreements
winget install --id OliverBetz.ExifTool --accept-source-agreements --accept-package-agreements
py -m pip install --user flare-floss oletools oledump pefile lief capa
dotnet tool install --global ilspycmd

Ghidraヘッドレスの場合、公式リリースをダウンロードし、support/analyzeHeadless または support\analyzeHeadless.bat を PATH に公開します。

必要なツールセット

以下のレベルを使用して、環境が完全な解析に十分かどうかを判断します。

必須

これらは、主要なサンプルタイプにわたる堅牢なエンドツーエンドワークフローに期待されるツールまたは機能です:

  • file
  • sha256sum または同等のハッシュツール
  • strings
  • ripgrep (rg)
  • python3 または py
  • yara
  • 7z
  • objdump
  • nm
  • exiftool
  • jadx
  • apktool
  • aapt2
  • floss
  • xorsearch
  • radare2 (r2)
  • rabin2
  • Ghidra ヘッドレス(analyzeHeadless)
  • ilspycmd
  • monodis
  • oletools (oleid、olevba)
  • oledump.py
  • Pythonモジュール pefile、lief

強く推奨

これらはすべての場合に必須ではありませんが、完全なマルウェアアナリストのワークフローは定期的にこれらから利益を得ます:

  • readelf
  • binwalk
  • unzip
  • zipinfo
  • xxd
  • base64
  • sed
  • awk
  • tr
  • xmllint
  • iconv
  • macOSの otool と lipo
  • bundletool
  • apkanalyzer
  • rtfobj
  • CyberChef CLI

オプションまたは状況依存

これらは特定のフォーマット、ファミリー、またはアナリストの好みに役立ちます:

  • capa
  • upx
  • sigcheck
  • node
  • php
  • perl
  • pwsh
  • スクリプトが多いケースのためのビューティファイアまたはASTパーサー

解釈ルール:

  • 必須のツールまたは機能が不足している場合、解析は続行できるかもしれませんが、Codexは環境が劣化していることを述べ、最良のフォールバックを使用する必要があります
  • 強く推奨されるツールが不足している場合、不足している機能が特定のステップを妨げない限り、通常通り続行します
  • オプションのツールが不足している場合、現在のケースに実質的に改善をもたらす場合にのみ言及します

永続的なケースファイル

ケースのルートに常に2つのファイルを維持すること:

  • AGENTS.md:作業メモリ
  • REPORT.md:アナリスト向けの最終報告書。作業中に更新

AGENTS.md

実質的な作業の前に AGENTS.md を作成または読み取ります。意味のあるアクションや発見のたびに更新します。

以下を保存するために使用します:

  • 現在のサンプルと現在のステータス
  • ツールの可用性とフォールバックの決定
  • 確認された発見とその出典
  • 抽出されたステージと親子関係
  • デコーダまたは復号のメモ
  • ファミリー属性のステータス
  • ブロッカー、未解決の質問、および次のアクション

推奨セクション:

  • Current Summary
  • Sample Inventory
  • Environment And Tooling
  • Timeline
  • Confirmed Findings
  • Decoders And Algorithms
  • Family Attribution
  • Evidence Index
  • Open Questions
  • Next Actions
  • Final Assessment

REPORT.md

解析の最後だけでなく、解析中に REPORT.md を作成します。作業が続く場合は同じファイルを更新します。

REPORT.md は明確でシンプルで、参照しやすい状態を保つ必要があります。これはクリーンなサマリーであり、AGENTS.md は作業メモリです。

REPORT.md には以下を含める必要があります:

  • ケースサマリー
  • サンプルインベントリ
  • 順序付けられた実行または侵害チェーン
  • ステージごとの詳細(以下を含む):
    • ファイル名またはラベル
    • MD5
    • SHA1
    • SHA256
    • ファイルタイプ
    • ソースまたは親ステージ
    • チェーン内の役割
  • 以下のように分類された指標:
    • ドロップURL
    • ステージURL
    • C2 URL
    • ドメイン
    • IPアドレス
  • デコード、復号、アンパック、またはステージングロジック
  • 永続化とアンチ解析の発見
  • マルウェアファミリーの評価
  • 信頼度と制限事項

チェーンを完全に再構築できない場合は、どこで中断し、その理由を述べてください。

証拠の保存

たとえ要求がIOC抽出のみに限定されているように見えても、常にケースディレクトリを作成し、証拠を保存すること。

推奨レイアウト:

  • case/AGENTS.md
  • case/REPORT.md
  • case/00-intake/
  • case/01-triage/
  • case/02-strings/
  • case/03-static/
  • case/04-decoding/
  • case/05-config/
  • case/06-extracted/
  • case/07-stages/
  • case/08-yara/
  • case/09-reports/
  • case/10-iocs/
  • case/11-notes/

必要に応じて手動で作成する:

mkdir -p case/{00-intake,01-triage,02-strings,03-static,04-decoding,05-config,06-extracted,07-stages,08-yara,09-reports,10-iocs,11-notes}

インテーク

解析のために提出された元のサンプルを case/00-intake/ に置きます。元のファイルを変更せずに保存します。

トリアージ

初期のファイルタイプの決定、ハッシュ、サイズ、および基本的なメタデータを保存します。

文字列

strings と floss の出力を保存します。また、デコードされた文字列があればそれも保存します。

静的

解析の進行に応じて、ファイルオフセット、インポート、エクスポート、セクションレイアウト、リソース、オーバーレイなどを書き留めます。キーとなる調査結果を明確に文書化します。

デコード

デコード、復号、アンパック、または変換されたブロブを保存します。使用した方法またはスクリプトを書き留めます。

設定

C2サーバー、ドロップURL、埋め込みキー、永続化メカニズムなど、抽出された設定を保存します。

抽出物

分離されたオブジェクト、埋め込みファイル、または処理中に生成された中間アーティファクト。

ステージ

ダウンロード、ドロップ、またはデコードされた後続のステージ。

YARA

カスタムYARAルールと一致した場合の結果。

レポート

サードパーティのツールレポートまたは自動化されたツール出力。

IOC

IOCのクリーンな抽出物。REPORT.md を補完する機械可読なリスト。

メモ

特定のディレクトリに分類されない自由形式のメモまたは実験的出力。

解析ワークフロー

以下のシーケンスに従ってください。ほとんどの場合、上から下へ進みます。状況に応じてセクションをスキップまたは順序変更することもできますが、その決定を文書化してください。

1. セットアップ

  1. ケースディレクトリ構造を作成する
  2. OSを検出する
  3. ツールを検出する
  4. サンプルをインテークにコピーする
  5. AGENTS.md を読み取り、作成する
  6. REPORT.md を作成する

2. トリアージ

  1. file でファイルタイプを決定する
  2. sha256sum、sha1sum、md5sum、または各OSの同等のコマンドでハッシュを計算する
  3. ファイルサイズを記録する
  4. ファイルタイプに適した初期YARAスキャンを実行する
  5. 結果を case/01-triage/ に保存する
  6. サンプルがサポートされているタイプでない場合や空の場合にのみ停止する

3. 文字列

  1. デフォルトの最小長で strings を実行する
  2. フレアフロス(floss)が利用可能な場合は実行する
  3. 結果を case/02-strings/ に保存する
  4. ripgrep でキーワード、URL、IP、レジストリパス、ファイルパスを検索する
  5. デコードルーチンの可能性がある場所を探す

4. 静的解析

  1. セクション、リソース、インポート、エクスポートを検査する
  2. 埋め込みオブジェクトまたはオーバーレイを特定する
  3. パッカーまたは難読化の指標を探す
  4. ファイル固有のツールで初期解析を実行する(例:pefile、lief はPE、readelf はELF、jadx はAPK)
  5. 結果を case/03-static/ に保存する

5. 構成とC2

  1. 設定データを検索して抽出する
  2. C2 URL、ドメイン、IPを特定する
  3. 難読化やエンコードをデコードする
  4. 構成ブロブを解析する

6. YARA

  1. すべての抽出されたステージにカスタムYARAルールを適用する
  2. 結果を case/08-yara/ に保存する

7. レポート

  1. すべてのセクションで REPORT.md を更新する
  2. AGENTS.md を更新する
  3. 最終的なファミリー属性の評価を提供する
  4. 信頼度と制限事項を述べる

特定の解析パス

Windows PE

PEファイルの場合、strings、floss、pefile から始めます。python3 -m pefile sample.exe を使用してPEヘッダーをダンプできます。解析するPEセクション:

  • .text:実行可能コード
  • .rdata:読み取り専用データ(インポートと文字列を含むことが多い)
  • .data:読み取り/書き込みデータ
  • .rsrc:リソース(アイコン、埋め込みファイル)
  • .reloc:ベース再配置
  • .pdata:例外情報

埋め込みリソースを抽出するには、7z または python3 を使用します。radare2 または Ghidra ヘッドレスで制御フローをたどります。.NETバイナリの場合は ilspycmd または monodis を優先します。

Linux ELF

readelf -h、readelf -S、objdump -d を使用します。共有ライブラリの依存関係には ldd を使用します。認識されない場合は binwalk を使用して未知のブロブを探します。

macOS Mach-O

otool、nm、lipo、rabin2 を使用します。file はユニバーサルバイナリとシングルアーキテクチャバイナリを特定します。

スクリプトとWebペイロード

strings、ripgrep、xxd を使用して難読化されたコンテンツをプロファイルします。エンコードループを検出するために制御フローを検査します。悪意のあるペイロードをそのまま解釈しないでください。ペイロードを実行せずにデコードを再実装するために python3 を使用します。

Office文書

最初に oleid を実行して潜在的なリスクを評価します。次に olevba または oledump.py を使用してVBAマクロを抽出します。OLE埋め込みオブジェクトには oleobj を使用します。

Android APK

apktool d で逆コンパイルし、jadx で逆コンパイルされたJavaソースを検査します。aapt2 でマニフェストとリソースを確認します。strings と ripgrep で重要なキーワードを探します。

結果の解釈

以下に、解析中に遭遇する可能性のある一般的な指標をいくつか示します。

難読化技術

  • Base64(base64、xxd、または python3 でデコード)
  • XOR / ローリングXOR(xorsearch または python3 でブルートフォース)
  • AES / DES / RC4(python3 または利用可能な復号ツールで復号)
  • カスタムエンコーディング(制御フローを分析してアルゴリズムを再構築)
  • 圧縮されたブロブ(7z、upx、または 0z マジックバイトを探す)

永続化メカニズム

  • レジストリRunキー
  • スタートアップフォルダ
  • サービスのインストール
  • スケジュールされたタスク
  • WMIイベントサブスクリプション
  • DLLサイドローディング
  • ブートキットまたはルートキットコンポーネント

アンチアナリシス

  • VMの検出(MAC、レジストリ、プロセス)
  • デバッグ検出(IsDebuggerPresent、NtQueryInformationProcess)
  • サンドボックス検出(CPUコア数、RAMサイズ、ディスクサイズ)
  • タイミングベースの難読化(Sleep、GetTickCount)

ネットワークインジケーター

C2プロトコル:

  • HTTP / HTTPS POSTビーコン
  • DNSトンネリング
  • カスタムTCP / UDP
  • P2Pメッシュネットワーク
  • ソーシャルメディアまたはクラウドサービスを悪用したC2

ネットワークルール:

  • 取得したURLにHTTPSがない場合はHTTPSを試さない
  • 既に範囲内にあるURLのみを解決する
  • 範囲が拡張されていない限り、スキャニングやクローリングを行わない
  • ネットワークインジケーターへの受動的アクセスに限定する

ファミリー属性

既知のファミリーとの共有コード、重複するC2インフラ、類似した難読化、またはその他の信頼できる属性指標を探します。属性とともに信頼度メモを含めます:

  • 高い:複数の独立した指標が単一のファミリーを指している
  • 中程度:いくつかの指標が一致しているが、確定していない
  • 低い:緩やかな類似性のみ
  • 割り当て不可:既知のプロファイルに適合しない

エラーハンドリング

ツールの欠落

ツールが欠落している場合:

  1. 利用可能な同等のフォールバックをチェックする
  2. フォールバックが存在する場合はそれを使用し、AGENTS.md にメモする
  3. フォールバックが存在しない場合は、ユーザーにインストールを依頼する
  4. インストールが拒否された場合、欠落したツールなしで継続できる場合は継続し、できない場合は停止する

解析の失敗

解析手順が失敗した場合:

  1. 代替ツールを試す
  2. 異なるアプローチを試す(例:ソースコードの代わりに逆アセンブリ)
  3. 生のバイトレベルにフォールバックする
  4. 試行錯誤を文書化する
  5. ブロッカーが本当に解決できない場合にのみ停止する

破損または暗号化されたファイル

ファイルが破損またはパスワードで保護されているように見える場合:

  • ファイルシグネチャを確認して正しいファイルタイプであることを確認する
  • 共通パスワード(infected、malware、password、空のパスワード)を試す
  • 部分的に回復可能なコンテンツの可能性として、残っているものを調べる
  • パスワードなしで開けない、破損していて回復できないファイルは削除する

倫理と安全性

  • 悪意のあるファイルやリンクと決定的に対話しないでください
  • ワークステーションの整合性を危険にさらす可能性のあるツールを実行しないでください
  • 実際のデータを保存または処理するシステムにマルウェアを導入しないでください
  • すべての解析は隔離された環境で行う必要があります
  • 潜在的な全損害を軽減するために予防措置を講じてください

文書化のベストプラクティス

  • なぜ特定のアクションを実行したか、なぜ特定の結論に達したかを説明する
  • 不確実性と代替の可能性を文書化する
  • 複数の仮説を同時に検討する
  • それぞれの証拠の強さを評価する
  • 元の調査結果と推論を区別する
  • 他者があなたの作業を追跡し検証できるように文書化する

関連スキル