Nota: As seguintes instruções são para Python3.
Se você precisar instalar o flashmingo no python2.7, poderá verificar a release 1.0 na guia Releases . As etapas de instalação são essencialmente as mesmas.
Instale os pacotes Python3 listados no requirements.txt .
Você pode usar o seguinte comando: pip3 install -r requirements.txt
Se você deseja usar a funcionalidade de descompilação, é necessário instalar o Jython. Usuários do Ubuntu/Debian podem emitir apt install jython
Clone o projeto ou faça o download do arquivo zip.
Flashmingo é uma estrutura de análise para arquivos SWF. A ferramenta trinta automaticamente arquivos flash suspeitos e orienta o processo de análise adicional, liberando recursos preciosos em sua equipe. Você pode incorporar facilmente os módulos de análise do Flashmingo em seu fluxo de trabalho.
Até hoje, investigadores forenses e analistas de malware devem lidar com arquivos SWF suspeitos. Se a história se repeter, a ameaça à segurança pode até se tornar maior além da vida do Flash em 2020. Os sistemas continuarão suportando um formato de arquivo herdado que não será mais atualizado com patches de segurança. A automação é a melhor maneira de lidar com esse problema e é aqui que o Flashmingo pode ajudá -lo. O Flashmingo é uma estrutura de análise para processar automaticamente arquivos SWF que permitem sinalizar amostras suspeitas de flash e analisá -las com um esforço mínimo. Ele se integra a vários fluxos de trabalho de análise como um aplicativo independente ou em uma biblioteca poderosa. Os usuários podem estender facilmente a funcionalidade da ferramenta por meio de plugins Python personalizados.
Flashmingo foi projetado com a simplicidade em mente. Ele lê um arquivo SWF e cria um objeto ( SWFObject ) representando seu conteúdo e estrutura. Posteriormente, o Flashmingo executa uma série de plugins atuando neste SWFObject e retornando seus valores ao programa principal.
Abaixo de um diagrama obrigatório de fluxo de arte ASCII:
+----------+
| |
+------------+----------->+ PLUGIN 1 +------------+
| | | | |
| | +----------+ |
| | |
| | +----------+ |
| | | | |
+---------+ | +----------->+ PLUGIN 2 +--------+ |
|SWF FILE +----------->+ FLASHMINGO | | | | |
+---------+ | | +----------+ | |
| | | |
| | | |
| | | |
| | +-----v---v-+
| | | |
| | | |
+-----+------+------------------------->+ SWFOBJECT |
^ | |
| | |
| +-----+-----+
| |
| |
| |
+---------------------------------------+
Ao usar o Flashmingo como uma biblioteca em seus próprios projetos, você só precisa cuidar de dois tipos de objetos:
SWFObject (s), representando a (s) amostra (s)Flashmingo . Isso atua essencialmente como um arnês que conecta plugins e SWFObject (s). Flashmingo plug plugins flashmingo são armazenados em seus próprios diretórios ... Se isso indicar que o plug -in está ativo, está registrado para uso posterior. No nível do código, isso significa que um pequeno dicionário plugin_info é adicionado à lista plugins .
Os plugins são chamados através da API run_plugin com dois argumentos:
SWFObject Opcionalmente, a maioria dos plugins permite que você passe seus próprios dados do usuário . Isso depende do plug -in (leia a documentação) e pode ser mais facilmente explicado com um exemplo. O plug-in padrão SuspiciousNames pesquisará todos os pools constantes quanto a strings contendo substringas suspeitas (por exemplo: 'Overflow', 'spray', 'shell' etc.) Há uma lista de substringas comuns já codificadas no plug-in para que possa ser usado as-is . No entanto, você pode passar em uma lista de suas próprias substringas definidas, neste caso através do parâmetro names .
Exemplo de código:
fm = Flashmingo ()
print fm . run_plugin ( 'DangerousAPIs' , swf = swf )
print fm . run_plugin ( 'SuspiciousNames' , swf = swf , names = [ 'spooky' ])Flashmingho envia com alguns plugins úteis prontos para uso:
Um plug -in de modelo é fornecido para facilitar o desenvolvimento. Estender o flashmingo é bastante direto. Siga estas etapas simples:
runVocê está pronto para ir :)
docs para documentação autogenerada $ pip install sphinxcontrib-napoleon
Depois de configurar a Sphinx para construir seus documentos, ative Napoleão no arquivo Sphinx conf.py:
Em conf.py , adicione Napoleão à lista de extensões
extensions = ['sphinxcontrib.napoleon']
Use Sphinx-Apidoc para criar sua documentação da API:
$ sphinx-apidoc -f -o docs/source projectdir
Isso cria arquivos .rst para a Esfinge para processar
$ make html
É isso! :)