Mostrando postagens com marcador código fonte. Mostrar todas as postagens
Mostrando postagens com marcador código fonte. Mostrar todas as postagens

quinta-feira, 21 de março de 2013

Decompilação de Programas Android




Procurando na internet um meio de vê como extrai o código fonte de uma aplicação Android,  achei os links acima, o primeiro ensina como descompactar o apk extraindo os códigos fontes e também os XML de layout, o segundo é uma ferramenta disponibilizada no fórum da XDA que faz todo o trabalho de decompilação dos apks e pode fazer também a alteração dos fontes e posterior compilação novamente.

Com base nestes dois links fiz um BAT para decompilar um APK mais adequado e simples para minha utilização. Disponibilizo aqui para quem queira dá uma estudada.

Aviso: Respeite os direitos autorais.

Faça o Download nestes links: 

Depois de descompactado ele fica com a seguinte estrutura:

Estrutura de diretório BAT de decompilação
Estrutura do Diretório

A estrutura de diretórios tem os seguintes pastas:
  • apks – Onde se coloca os arquivos apk que se quer decompilar.
  • apktool – Arquivos do apktool.
  • Decompilados – Onde um BAT descompacta os arquivos.
  • dex2jar – Utilitário para gerar o jar com o código fonte do apk.
  • Other – Outros arquivos necessários para descompactar o apk.
  • decompila.bat – Arquivo de lote que executar as tarefas necessárias para a decompilação do apk.

É só executar o arquivo decompila.bat e será apresentado a tela de comando do DOS.

Execução do BAT decomplica.bat
Execução do BAT decompila.bat

Escolha a opção 1 para se escolher um APK para  decompilar e será lidos os arquivos do diretório apks e será criado uma lista para escolha do apk para decompilar.


Tela de escolha do APK
Escolha do APK 

Após a escolha do apk para decompilar execute as opções 2,3,4 para gerar os arquivos descompactados e a opção número 5 para sair do BAT. Será criado no diretório Decompilados a seguinte estrutura:

Estrutura criada pela decompilação
Estrutura criada pela decompilação

Onde:
  • MinhaAplicacao – É o nome do programa selecionado para decompilação.
  • MinhaAplicacao.apk  - É o diretório onde se encontra os fontes do apk no arquivo jar criado.
  • Xml – É o diretório com os arquivos  xml dos layouts do apk.


A visualização do fonte do apk é feita com o programa Java Decompiler do site: http://java.decompiler.free.fr.


Para visualizar o fonte descompacte o arquivo jd-gui.rar  e abri o programa Java Decompiler e navegar até o diretório MinhaAplicacao.apk e escolher o arquivo classes_dex2jar.jar, será apresentado a tela seguinte:

Visualização do código fonte
Visualização do código fonte

Logo abaixo tem a comparação dos código originais e os gerados pela decompilação:

Comparação dos códigos fontes originais e decompilados
Comparação dos códigos fontes originais e decompilados


Espero que este tutorial seja de ajuda para alguém.