
Ferramenta de comparação difusa para desofuscamento de APKs Android por meio da identificação de funções renomeadas entre versões, gerando arquivos de mapeamento e relatórios HTML interativos para análise de malware e vulnerabilidades.
🤖 Obfu[DE]scate: Uma ferramenta de desofuscação e comparação para APKs Android. 📱
Obfu[DE]scate é uma ferramenta Python projetada para simplificar o processo de desofuscar e comparar duas versões de um APK Android - mesmo que as funções tenham sido renomeadas como parte da ofuscação. Com lógica de comparação difusa, o Obfu[DE]scate pode identificar semelhanças entre funções e ajudar você a descobrir mudanças entre as versões do APK.
Começar com Obfu[DE]scate é fácil! Siga estes passos:
pip install -r REQUIREMENTS.txt
O Obfu[DE]scate foi testado no Windows 11, mas deve funcionar em outros sistemas também.
O Obfu[DE]scate fornece várias opções de linha de comando para personalizar seu comportamento:
Para comparar dois arquivos APK, basta executar o Obfu[DE]scate com o seguinte comando:
python ObfuDeScate.py -a1 "old_example.apk" -a2 "new_example.apk" -cp "com.example.path"
No exemplo acima, o Obfu[DE]scate revisará todas as funções no APK old_example.apk no caminho de classe com.example.path e as comparará com todas as funções encontradas no mesmo caminho de classe em new_example.apk.
O Obfu[DE]scate gera dois arquivos de saída: um arquivo de mapeamento em formato de lista separada por quebras de linha, e um arquivo HTML interativo. Esses arquivos de saída incluem:
com.chess.play.ObserveGameHelperImpl.d -> com.chess.play.ObserveGameHelperImpl.a .
O Obfu[DE]scate é um projeto de código aberto e aceita contribuições da comunidade. Se você deseja contribuir com o Obfu[DE]scate, siga estas diretrizes:
O Obfu[DE]scate segue o Código de Conduta do Contributor Covenant. Por favor, certifique-se de revisar. e seguir este código de conduta ao contribuir com o Obfu[DE]scate.
Se você encontrar um bug ou tiver uma sugestão de nova funcionalidade, por favor abra uma issue no repositório do GitHub. Forneça o máximo de detalhes possível, incluindo passos para reproduzir o problema ou uma descrição clara da funcionalidade proposta. Seu feedback é valioso e ajudará a melhorar o Obfu[DE]scate para todos.
Esta ferramenta não funcionaria sem o APKTool! Em segundo lugar, muitos dos exemplos neste README usam o aplicativo Chess.com como base, confira aqui.
| Abreviação | Parâmetro | Descrição | Obrigatório |
|---|
| -a1 | apk_file_path_1 | O caminho para o APK original. Este é o APK com o qual o segundo APK será comparado (ex: uma versão mais antiga do APK) | True |
| -a2 | apk_file_path_2 | O caminho para o APK mais novo. A saída mostrará as mudanças entre o APK 1 e este APK. | True |
| -cp | class_path | Um caminho de notação de domínio reverso que será usado para filtrar funções revisadas (ex: forneça com.example.class para comparar apenas funções neste caminho). | False |
| -o | output_dir | Um diretório para salvar o mapeamento de saída, html e APKs desmontados. | False |
| -apktool | apk_tool_path | Se o APKTool não estiver no seu PATH, use este parâmetro para dizer ao ObfuDeScate onde o APKTool está localizado. | False |