注:次の指示はPython3用です。
Python2.7にFlashmingoをインストールする必要がある場合は、 [リリース]タブでリリース1.0をチェックアウトできます。インストール手順は基本的に同じです。
requirements.txtにリストされているPython3パッケージをインストールします。txt。
次のコマンドを使用できます: pip3 install -r requirements.txt
逆コンパイル機能を使用する場合は、Jythonをインストールする必要があります。 ubuntu/debianユーザーはapt install jythonを発行できます
プロジェクトをクローンするか、zipファイルをダウンロードします。
Flashmingoは、SWFファイルの分析フレームワークです。このツールは、疑わしいフラッシュファイルを自動的にトリナージし、さらなる分析プロセスをガイドし、チームの貴重なリソースを解放します。 Flashmingoの分析モジュールをワークフローに簡単に組み込むことができます。
今日まで、法医学の調査員とマルウェアアナリストは、疑わしいSWFファイルに対処する必要があります。履歴が繰り返されると、2020年のFlashの人生の終わりを超えてセキュリティの脅威が大きくなる可能性があります。システムは、セキュリティパッチで更新されないレガシーファイル形式を引き続きサポートします。自動化はこの問題に対処するための最良の方法であり、これがFlashmingoがあなたを助けることができる場所です。 Flashmingoは、疑わしいフラッシュサンプルにフラグを立て、最小限の労力で分析できるSWFファイルを自動的に処理する分析フレームワークです。スタンドアロンアプリケーションまたは強力なライブラリとして、さまざまな分析ワークフローに統合されます。ユーザーは、カスタムPythonプラグインを介してツールの機能を簡単に拡張できます。
Flashmingoは、シンプルさを念頭に置いて設計されています。 SWFファイルを読み取り、その内容と構造を表すオブジェクト( SWFObject )を作成します。その後、FlashmingoはこのSWFObjectに作用し、その価値をメインプログラムに返す一連のプラグインを実行します。
必須のASCIIアートフロー図の下:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
Flashmingoを独自のプロジェクトでライブラリとして使用する場合、2つの種類のオブジェクトを処理するだけが必要です。
SWFObject (s)Flashmingoオブジェクト。これは、基本的にプラグSWFObjectを接続するハーネスとして機能します。 Flashmingoプラグインは、独自のディレクトリに保存されています...あなたはそれを推測しました: plugins Flashmingoオブジェクトがインスタンス化されると、このディレクトリを通過し、すべてのプラグインのマニフェストを処理します。これがプラグインがアクティブであることを示している場合、これは後で使用するために登録されます。コードレベルでは、これは小さなplugin_info辞書がpluginsリストに追加されることを意味します。
プラグインは、2つの引数を使用してrun_plugin APIを介して呼び出されます。
SWFObjectインスタンスオプションで、ほとんどのプラグインを使用すると、独自のユーザーデータを渡すことができます。これはプラグイン依存性(ドキュメントを読む)であり、例でより簡単に説明できます。デフォルトのプラグインSuspiciousNamesでは、疑わしいサブストリング(「オーバーフロー」、「スプレー」、「シェル」など)を含む文字列のすべての一定のプールas-is検索します。ただし、この場合は、 namesパラメーターを介して、独自の定義されたサブストリングのリストを渡すことができます。
コード例:
fm = Flashmingo ()
print fm . run_plugin ( 'DangerousAPIs' , swf = swf )
print fm . run_plugin ( 'SuspiciousNames' , swf = swf , names = [ 'spooky' ])Flashmingoは、箱から出していくつかの便利なプラグインを備えています:
簡単に開発できるテンプレートプラグインが提供されます。 Flashmingoを拡張することはかなり簡単です。これらの簡単な手順に従ってください:
run方法をオーバーライドしますあなたは行く準備ができています:)
docsディレクトリを参照してください$ pip install sphinxcontrib-napoleon
スフィンクスを設定してドキュメントを作成した後、スフィンクスconf.pyファイルでナポレオンを有効にします。
conf.pyで、拡張機能リストにナポレオンを追加します
extensions = ['sphinxcontrib.napoleon']
Sphinx-Apidocを使用して、APIドキュメントを作成します。
$ sphinx-apidoc -f -o docs/source projectdir
これにより、Sphinxが処理される.rstファイルが作成されます
$ make html
それでおしまい! :)