Примечание. Следующие инструкции для Python3.
Если вам нужно установить Flashmingo на Python2.7, вы можете проверить выпуск 1.0 на вкладке «Выпуск» . Шаги установки по сути одинаковы.
Установите пакеты Python3, указанные в requirements.txt .
Вы можете использовать следующую команду: pip3 install -r requirements.txt
Если вы хотите использовать функциональность декомпиляции, вам нужно установить Jython. Пользователи Ubuntu/Debian могут выпустить apt install jython
Клонировать проект или загрузить zip -файл.
Flashmingo - это анализ для файлов SWF. Инструмент автоматически уделяет оспаривание Flash -файлов и направляет дальнейший процесс анализа, освобождая драгоценные ресурсы в вашей команде. Вы можете легко включить аналитические модули Flashmingo в свой рабочий процесс.
По сей день судебные следователи и аналитики вредоносных программ должны иметь дело с подозрительными файлами SWF. Если история повторяется, угроза безопасности может даже стать больше, чем в конце жизни Флэш в 2020 году. Системы будут продолжать поддерживать устаревший формат файла, который больше не будет обновляться с помощью исправлений безопасности. Автоматизация - лучший способ решить эту проблему, и именно здесь Flashmingo может вам помочь. Flashmingo - это структура анализа для автоматического обработки файлов SWF, которая позволяет вам помечать подозрительные образцы вспышки и анализировать их с минимальными усилиями. Он интегрируется в различные рабочие процессы анализа как отдельное приложение или мощную библиотеку. Пользователи могут легко расширить функциональность инструмента через пользовательские плагины Python.
Flashmingo разработан с учетом простоты. Он считывает файл SWF и создает объект ( SWFObject ), представляющий его содержимое и структуру. После этого Flashmingo запускает серию плагинов, действующих на этот SWFObject и возвращая свои значения в основную программу.
Ниже обязательная диаграмма ASCII Art Flow Diagram:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
При использовании Flashmingo в качестве библиотеки в ваших собственных проектах вам нужно позаботиться только о двух видах объектов:
SWFObject (ы), представляющие выборку (ы)Flashmingo . Это действует по существу как жгут, соединяющий плагины и SWFObject (ы). Плагины Flashmingo хранятся в своих собственных каталогах в разделе ... как вы уже догадались: plugins , когда объект Flashmingo создается, он проходит этот каталог и обрабатывает манифесты всех плагинов. Если это указывает на то, что плагин активен, он зарегистрирован для последующего использования. На уровне кода это означает, что в список plugins добавляется небольшой словарь plugin_info .
Плагины вызываются через API run_plugin с двумя аргументами:
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
После настройки Sphinx для создания ваших документов, включите Наполеона в файле sphinx conf.py:
В conf.py добавьте наполеона в список расширений
extensions = ['sphinxcontrib.napoleon']
Используйте Sphinx-Apidoc для создания документации по API:
$ sphinx-apidoc -f -o docs/source projectdir
Это создает .rst файлы для Sphinx для обработки
$ make html
Вот и все! :)