Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
flashmingo — いくつかのヒューリスティックに基づくSWFファイルの自動解析。プラグインで拡張可能。 | Kitploit
ツール/GitHubGitHub/mandiant/flashmingo
静的分析動的分析 (サンドボックス)脆弱性分析リバースエンジニアリングスクリプトと自動化フォレンジックマルウェア分析バイナリ解析学習と教育Archived
GitHubmandiant/flashmingo

flashmingo

いくつかのヒューリスティックに基づくSWFファイルの自動解析。プラグインで拡張可能。

120367年前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有
リポジトリを見る

FLASHMINGO

インストール

注意: 以下の手順はPython3用です。

Python2.7でFLASHMINGOをインストールする必要がある場合は、releases タブから1.0リリースをチェックアウトできます。インストール手順は基本的に同じです。

requirements.txt にリストされているPython3パッケージをインストールします。

次のコマンドを使用できます: pip3 install -r requirements.txt

デコンパイル機能を使用するには、Jython をインストールする必要があります。Ubuntu/Debianユーザーは apt install jython を実行できます。

プロジェクトをクローンするか、zipファイルをダウンロードしてください。

概要

FLASHMINGO はSWFファイルの解析フレームワークです。このツールは疑わしいFlashファイルを自動的にトリアージし、さらなる解析プロセスをガイドすることで、チームの貴重なリソースを解放します。FLASHMINGO の解析モジュールをワークフローに簡単に組み込むことができます。

背景

今日まで、フォレンジック捜査官やマルウェアアナリストは、疑わしいSWFファイルに対処しなければなりません。歴史が繰り返されるならば、セキュリティ脅威は2020年のFlashのサポート終了を超えてさらに大きくなる可能性さえあります。システムは、セキュリティパッチで更新されなくなったレガシーファイル形式を引き続きサポートします。自動化はこの問題に対処する最善の方法であり、ここでFLASHMINGOが役立ちます。FLASHMINGOはSWFファイルを自動処理する解析フレームワークであり、疑わしいFlashサンプルにフラグを立て、最小限の労力で解析できるようにします。スタンドアロンアプリケーションとして、または強力なライブラリとして、さまざまな解析ワークフローに統合されます。ユーザーはカスタムPythonプラグインを介してツールの機能を簡単に拡張できます。

動作の仕組み

アーキテクチャ

FLASHMINGO はシンプルさを念頭に設計されています。SWFファイルを読み取り、その内容と構造を表すオブジェクト(SWFObject)を作成します。その後、FLASHMINGO はこの SWFObject に対して動作し、その値をメインプログラムに返す一連のプラグインを実行します。

以下は必須のASCIIアートフロー図です:

root@kitploit:~
                                                 +----------+
                                                 |          |
                       +------------+----------->+ PLUGIN 1 +------------+
                       |            |            |          |            |
                       |            |            +----------+            |
                       |            |                                    |
                       |            |            +----------+            |
                       |            |            |          |            |
+---------+            |            +----------->+ PLUGIN 2 +--------+   |
|SWF FILE +----------->+ FLASHMINGO |            |          |        |   |
+---------+            |            |            +----------+        |   |
                       |            |                                |   |
                       |            |                                |   |
                       |            |                                |   |
                       |            |                          +-----v---v-+
                       |            |                          |           |
                       |            |                          |           |
                       +-----+------+------------------------->+ SWFOBJECT |
                             ^                                 |           |
                             |                                 |           |
                             |                                 +-----+-----+
                             |                                       |
                             |                                       |
                             |                                       |
                             +---------------------------------------+

FLASHMINGO をライブラリとして自身のプロジェクトで使用する場合、2種類のオブジェクトのみを扱う必要があります:

  • サンプルを表す1つ以上の SWFObject
  • Flashmingo オブジェクト。これは基本的にプラグインと SWFObject を接続するハーネスとして機能します。

プラグイン!

FLASHMINGO のプラグインは、その名の通り plugins ディレクトリ内の独自のサブディレクトリに格納されています。

Flashmingo オブジェクトがインスタンス化されると、このディレクトリを走査し、すべてのプラグインのマニフェストを処理します。プラグインがアクティブであることを示す場合、後で使用するために登録されます。コードレベルでは、これは小さな plugin_info ディクショナリが plugins リストに追加されることを意味します。

プラグインは run_plugin API を介して2つの引数で呼び出されます:

  • プラグインの名前
  • SWFObject インスタンス

オプションとして、ほとんどのプラグインは独自の ユーザーデータ を渡すことができます。これはプラグインに依存します(ドキュメントを参照)。例を用いて説明する方が簡単でしょう。 デフォルトのプラグイン SuspiciousNames は、すべての定数プールをスキャンし、疑わしい 部分文字列(例:'overflow', 'spray', 'shell' など)を含む文字列を検索します。プラグインには一般的な部分文字列のリストがハードコードされているため、そのまま使用できます。ただし、自分で定義した部分文字列のリストを names パラメータで渡すこともできます。

コード例:

root@kitploit:~
fm = Flashmingo()
print fm.run_plugin('DangerousAPIs', swf=swf)
print fm.run_plugin('SuspiciousNames', swf=swf, names=['spooky'])

デフォルトプラグイン

FLASHMINGO には標準でいくつかの便利なプラグインが含まれています:

  • binary_data
  • dangerous_apis
  • decompiler
  • suspicious_constants
  • suspicious_loops
  • suspicious_names
  • template :)

FLASHMINGO の拡張

簡単な開発のためにテンプレートプラグインが用意されています。 FLASHMINGO の拡張は非常に簡単です。以下の簡単な手順に従ってください:

  • テンプレートをコピーする
  • マニフェストを編集する
  • run メソッドをオーバーライドする
  • カスタムコードを追加する

これで準備完了です :)

ライブラリとしての FLASHMINGO

API

  • 自動生成されたドキュメントについては docs ディレクトリを参照
  • 例については FireEye のブログ記事を参照

フロントエンド

  • コンソール

ドキュメントの作成

$ pip install sphinxcontrib-napoleon

Sphinx を設定してドキュメントをビルドした後、Sphinx の conf.py ファイルで napoleon を有効にします:

conf.py で、extensions リストに napoleon を追加します

extensions = ['sphinxcontrib.napoleon']

sphinx-apidoc を使用して API ドキュメントをビルドします:

$ sphinx-apidoc -f -o docs/source projectdir

これにより、Sphinx が処理する .rst ファイルが作成されます

$ make html

以上です! :)

ツールをダウンロード