Vídeo: Eng. Reversa de Apps Android - Parte 1 - Fundamentos (Novembro 2024)
Uma das táticas mais comuns para espalhar malware - ou até mesmo aplicativos ruins - no Android é reembalar aplicativos. Durante sua apresentação na RSA Conference, Pau Oliva Fora, da viaForensics, demonstrou que leva apenas alguns minutos para fazer a engenharia reversa de aplicativos Android.
Obtendo seu aplicativo
O primeiro passo para fazer a engenharia reversa de um aplicativo, disse Fora, era obter um aplicativo para você. Embora pareçam escorregadias no seu telefone, os aplicativos Android (ou APKs) são na verdade apenas arquivos ZIP com uma nova extensão. Dentro, está tudo o que o aplicativo precisa executar - do código a qualquer mídia que possa precisar.
Existem várias maneiras de obter um APK. Se você tem um aplicativo que deseja fazer engenharia reversa no seu Android, pode usar um gerenciador de arquivos como o ASTRO para salvar um backup em um cartão SD. Também é possível conectar seu Android a um computador e usar o Android Debugging Bridge para transferir o aplicativo para o seu PC. Você também pode usar ferramentas on-line para remover APKs do Google Play.
Separando-o
Depois de ter um APK para trabalhar, você precisará convertê-lo em algo mais utilizável. Para isso, Fora apresentou duas opções. Você pode desmontar seu destino com uma ferramenta como Apktool, que converterá o arquivo de código de aplicativo compilado do APK (Dalvik Executable ou DEX) em uma linguagem de montagem como Smali. Ou você pode descompilar , que converte o DEX em um Java Archive (JAR) e depois em Java.
Fora observou que, como alguns dados podem ser perdidos no processo de descompilação, é melhor usar um descompilador que foi feito com o Android em mente. Isso ignora a etapa JAR, convertendo DEX diretamente em Java.
Para pessoas desinteressadas em rastrear todas essas ferramentas por conta própria, Fora sugeriu Santoku. Esta é uma distribuição especial do Linux da viaForensics que vem pré-carregada com todas as ferramentas necessárias para desmontar, modificar e reembalar um aplicativo Android. É uma poderosa ferramenta forense digital sobre a qual escrevemos no passado.
Rapid Reverse
Se você dormiu durante os últimos parágrafos, é aqui que você acorda. Usando Santoku, Fora pegou um aplicativo Android muito básico que ele havia criado e o separou. Ele então navegou no código em busca de uma linha específica, modificou o código, reembalou-o, assinou, reinstalou o aplicativo modificado no seu Android e o lançou. Todo o processo levou menos de cinco minutos.
Agora, o Fora foi um exemplo muito simples. O aplicativo era muito básico e não incluía nenhum código ofuscado. No entanto, sua demonstração teve implicações poderosas. "Você pode fazer isso para mudar o comportamento de qualquer aplicativo Android", disse Fora, listando vidas infinitas em um jogo ou recursos pagos em um aplicativo gratuito, como apenas alguns exemplos.
Um exemplo mais assustador? Simplesmente lembre-se de qualquer um dos aplicativos clones maliciosos que vimos. Pense nisso antes de baixar o clone do FlappyBird.