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. 




8 comentários:

Anônimo disse...

Boa tarde parabéns pela iniciativa, como podemos abrir estes estes códigos? no Eclipse por exemplo, obrigado!!

Ithallu Fernando disse...

Boa Tarde, Não estou conseguindo fazer a 2ª e 3ª etapa, poderia me ajudar?

Anônimo disse...

Ola prenciso extrair o código fonte de um arquivo dll e um ex4 na linguagem mql pago pelo serviço email
Makoy_2007@hotmail.com

adam disse...

O download está com problema poderia verificar por favor?
Obrigado.

Fnrodrigues disse...

Resultou Obrigado

Márcio Vaz disse...

teria como enviar para o meu email??? o download ta quebrado
mva_ipa@hotmail.com

Ivan Mendes RO disse...

Ola amigo boa noite, Poderia me enviar por email os arquivos pois o link para o download ta quebrado
ivanmendesro@gmail.com abraços e fico no aguardo.

Anônimo disse...

Ola! Muito interessante o post. Link quebrado mas gostaria de ter os bats. Obrigado.
proberto1636@terra.com.br