Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
droidlysis — Ferramenta automatizada de pré-análise para aplicativos Android que desmonta amostras, extrai propriedades por meio de correspondência de padrões configurável e organiza a saída para engenharia reversa e análise de malware aceleradas. | Kitploit
Ferramentas/GitHubGitHub/cryptax/droidlysis
Segurança AndroidAnálise EstáticaEngenharia ReversaColeta de InformaçõesAnálise de MalwareSegurança Móvel
GitHubcryptax/droidlysis

droidlysis

Ferramenta automatizada de pré-análise para aplicativos Android que desmonta amostras, extrai propriedades por meio de correspondência de padrões configurável e organiza a saída para engenharia reversa e análise de malware aceleradas.

Ver Repositório
311492há 13 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

DroidLysis

DroidLysis é uma ferramenta de pré-análise para aplicativos Android: ela executa tarefas repetitivas e tediosas que normalmente faríamos no início de qualquer engenharia reversa. Ela descompila a amostra Android, organiza a saída em diretórios e procura por pontos suspeitos no código para analisar. A saída ajuda o engenheiro reverso a acelerar os primeiros passos da análise.

O DroidLysis pode ser usado em pacotes Android (apk), executáveis Dalvik (dex), arquivos Zip (zip), arquivos Rar (rar) ou diretórios de arquivos.

Instalando o DroidLysis

  1. Instale os pacotes de sistema necessários
root@kitploit:~
sudo apt-get install default-jre git python3 python3-pip unzip wget libmagic-dev libxml2-dev libxslt-dev
  1. Instale as ferramentas de descompilação Android
  • Apktool ,
  • Baksmali, e opcionalmente
  • Dex2jar e
root@kitploit:~
$ mkdir -p ~/softs
$ cd ~/softs
$ wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.9.3.jar
$ wget https://bitbucket.org/JesusFreke/smali/downloads/baksmali-2.5.2.jar
$ wget https://github.com/pxb1988/dex2jar/releases/download/v2.4/dex-tools-v2.4.zip
$ unzip dex-tools-v2.4.zip 
$ rm -f dex-tools-v2.4.zip 
  1. Obtenha o DroidLysis do repositório Git (preferido) ou via pip

Instale a partir do Git em um ambiente virtual Python (python3 -m venv, ou ambientes virtuais pyenv etc).

root@kitploit:~
$ python3 -m venv venv
$ source ./venv/bin/activate
(venv) $ pip3 install git+https://github.com/cryptax/droidlysis

Alternativamente, você pode instalar o DroidLysis diretamente do PyPi (pip3 install droidlysis).

  1. Configure conf/general.conf. Em particular, certifique-se de alterar /home/axelle pelos diretórios apropriados.
root@kitploit:~
[tools]
apktool = /home/axelle/softs/apktool_2.9.3.jar
baksmali = /home/axelle/softs/baksmali-2.5.2.jar
dex2jar = /home/axelle/softs/dex-tools-v2.4/d2j-dex2jar.sh
keytool = /usr/bin/keytool
...
  1. Execute:
root@kitploit:~
python3 ./droidlysis3.py --help

Configuração

O arquivo de configuração é ./conf/general.conf (você pode mudar para outro arquivo com a opção --config). Aqui você configura a localização de várias ferramentas externas (ex: Apktool), o nome dos arquivos de padrões (por padrão ./conf/smali.conf, ./conf/wide.conf, ./conf/arm.conf, ./conf/kit.conf) e o nome do arquivo de banco de dados (usado apenas se você especificar --enable-sql)

Certifique-se de especificar os caminhos corretos para as ferramentas de descompilação, senão o DroidLysis não as encontrará.

Uso

O DroidLysis usa Python 3. Para iniciá-lo e obter opções:

root@kitploit:~
droidlysis --help

Por exemplo, teste no APK do Signal:

root@kitploit:~
droidlysis --input Signal-website-universal-release-6.26.3.apk --output /tmp --config /PATH/TO/DROIDLYSIS/conf/general.conf

O DroidLysis gera:

  • Um resumo no console (veja imagem acima)
  • A amostra descompactada e pré-processada em um subdiretório do seu diretório de saída. O subdiretório é nomeado usando o nome do arquivo da amostra e a soma sha256. Por exemplo, se analisarmos o aplicativo Signal e definirmos --output /tmp, a análise será escrita em /tmp/Signalwebsiteuniversalrelease4.52.4.apk-f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290.
  • Um banco de dados (por padrão, SQLite droidlysis.db) contendo as propriedades que notou.

Opções

Obtenha o uso com droidlysis --help

  • A entrada pode ser um arquivo ou um diretório de arquivos para pesquisar recursivamente. O DroidLysis sabe como processar pacotes Android, executáveis DEX, ODEX e ARM, ZIP, RAR. O DroidLysis não falhará em outros tipos de arquivos (a menos que haja um bug...), mas não conseguirá entender o conteúdo.

  • Ao processar diretórios de arquivos, geralmente é muito útil mover amostras processadas para outro local para saber o que foi processado. Isso é tratado pela opção --movein. Além disso, se você estiver interessado apenas em estatísticas, provavelmente deve limpar o diretório de saída que contém informações detalhadas para cada amostra: esta é a opção --clearoutput. Se você quiser armazenar todas as estatísticas em um banco de dados SQL, use --enable-sql (veja aqui)

  • A análise do DroidLysis não inspeciona SDKs de terceiros conhecidos por padrão, ou seja, por exemplo, não reportará nenhuma atividade suspeita destes. Se você quiser que eles sejam inspecionados, use a opção --no-kit-exception. Isso geralmente cria muito mais propriedades detectadas para a amostra, pois SDKs (ex: publicidade) usam muitas APIs sinalizadas (obter localização GPS, obter IMEI, obter IMSI, HTTP POST...).

Diretório de saída da amostra (--output DIR)

Este diretório contém (quando aplicável):

  • Um AndroidManifest.xml legível
  • Recursos legíveis em res
  • Bibliotecas lib, recursos assets
  • Código Smali descompilado: smali (e outros)
  • Informações de metadados do pacote: META-INF
  • Conteúdo do pacote quando simplesmente descompactado em ./unzipped
  • Executável DEX classes.dex (e outros), e convertido para jar: classes-dex2jar.jar, e desjarrado em ./unjarred

Os seguintes arquivos são gerados pelo DroidLysis:

  • autoanalysis.md: lista cada padrão que o DroidLysis detectou e onde.
  • report.md: o mesmo que foi impresso no console

Se você não precisar que o diretório de saída da amostra seja gerado, use a opção --clearoutput.

Importar rastreadores do Exodus etc (--import-exodus)

root@kitploit:~
$ python3 ./droidlysis3.py --import-exodus --verbose
Processing file: ./droidurl.pyc ...
DEBUG:droidconfig.py:Reading configuration file: './conf/./smali.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./wide.conf'
DEBUG:droidconfig.py:Reading configuration file: './conf/./arm.conf'
DEBUG:droidconfig.py:Reading configuration file: '/home/axelle/.cache/droidlysis/./kit.conf'
DEBUG:droidproperties.py:Importing ETIP Exodus trackers from https://etip.exodus-privacy.eu.org/api/trackers/?format=json
DEBUG:connectionpool.py:Starting new HTTPS connection (1): etip.exodus-privacy.eu.org:443
DEBUG:connectionpool.py:https://etip.exodus-privacy.eu.org:443 "GET /api/trackers/?format=json HTTP/1.1" 200 None
DEBUG:droidproperties.py:Appending imported trackers to /home/axelle/.cache/droidlysis/./kit.conf

Rastreadores do Exodus que não estão presentes no seu kit.conf inicial são adicionados a ~/.cache/droidlysis/kit.conf. Compare os 2 arquivos e verifique quais rastreadores você deseja adicionar.

Banco de dados SQLite{#sqlite_database}

Se você quiser processar um diretório de amostras, provavelmente vai gostar de armazenar as propriedades que o DroidLysis encontrou em um banco de dados, para analisar e consultar facilmente os resultados. Nesse caso, use a opção --enable-sql. Isso despejará automaticamente todos os resultados em um banco de dados chamado droidlysis.db, em uma tabela chamada samples. Cada entrada na tabela é relativa a uma determinada amostra. Cada coluna são propriedades que o DroidLysis rastreia.

Por exemplo, para recuperar todos os nomes de arquivo, soma SHA256 e propriedades smali do banco de dados:

root@kitploit:~
sqlite> select sha256, sanitized_basename, smali_properties from samples;
f3c7d5e38df23925dd0b2fe1f44bfa12bac935a6bc8fe3a485a4436d4487a290|Signalwebsiteuniversalrelease4.52.4.apk|{"send_sms": true, "receive_sms": true, "abort_broadcast": true, "call": false, "email": false, "answer_call": false, "end_call": true, "phone_number": false, "intent_chooser": true, "get_accounts": true, "contacts": false, "get_imei": true, "get_external_storage_state": false, "get_imsi": false, "get_network_operator": false, "get_active_network_info": false, "get_line_number": true, "get_sim_country_iso": true,
...

Padrões de propriedades

O que o DroidLysis detecta pode ser configurado e estendido nos arquivos do diretório ./conf.

Um padrão consiste em:

  • um nome de tag: exemplo send_sms. Serve para nomear a propriedade. Deve ser único em todo o arquivo .conf.
  • um padrão: é uma regexp a ser correspondida. Ex: ;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage. No arquivo smali.conf, esta regexp é correspondida no código Smali. Neste caso específico, há 3 maneiras diferentes de enviar mensagens SMS a partir do código: sendTextMessage, sendMultipartTextMessage e sendDataMessage.
  • uma descrição (opcional): explica a importância da propriedade e o que significa.
root@kitploit:~
[send_sms]
pattern=;->sendTextMessage|;->sendMultipartTextMessage|SmsManager;->sendDataMessage
description=Enviando mensagens SMS

Importando Rastreadores de Privacidade do Exodus

O Exodus Privacy mantém uma lista de vários SDKs que são interessantes de descartar em nossa análise via conf/kit.conf. Adicione a opção --import_exodus à linha de comando do droidlysis: isso analisará os rastreadores existentes que o Exodus Privacy conhece e que ainda não estão no seu kit.conf. Finalmente, adicionará todos os novos rastreadores a ~/.cache/droidlysis/kit.conf.

Depois, você pode querer ordenar seu arquivo kit.conf:

root@kitploit:~
import configparser
import collections
import os

config = configparser.ConfigParser({}, collections.OrderedDict)
config.read(os.path.expanduser('~/.cache/droidlysis/kit.conf'))
# Order all sections alphabetically
config._sections = collections.OrderedDict(sorted(config._sections.items(), key=lambda t: t[0] ))
with open('sorted.conf','w') as f:
    config.write(f)

Script JEB para propriedades smali

Este script ajuda você a pesquisar métodos na interface JEB que contêm código que corresponde ao padrão smali e navegar facilmente para essas funções. Quando você carrega o script e seleciona o arquivo details.md entre os arquivos de análise do droidlysis, uma caixa de pesquisa aparecerá. Depois de movida, você pode facilmente trazer a janela de pesquisa de volta usando o atalho de execução de script recente.

  • JEB > File > Scripts > Script selector > script/DroidlysisSearch.py
  • JEB > File > Scripts > Executar Último Script

Atualizações

  • v3.4.7 - Removido Procyon, integradas várias PR #24 e #25, adicionada detecção mais detalhada de abuso de acessibilidade
  • v3.4.6 - Detectando recurso de manifesto que carrega automaticamente o APK na instalação
  • v3.4.5 - Criando um arquivo kit.conf de usuário gravável
  • v3.4.4 - Correção de bug #14
  • v3.4.3 - Usando arquivos de configuração
  • v3.4.2 - Adicionando importação de Rastreadores de Privacidade do Exodus
  • v3.4.1 - Removida dependência do Androguard
  • v3.4.0 - Suporte a multidex
  • v3.3.1 - Melhorando a detecção de strings Base64
  • v3.3.0 - Despejando dados em JSON
  • v3.2.1 - Detecção de endereço IP
  • v3.2.0 - Dex2jar é opcional
  • v3.1.0 - Detecção de strings Base64
Baixar ferramenta