quarta-feira, 4 de fevereiro de 2015

Tutorial: extrair código fonte de uma aplicação Android

 

Fonte: http://www.coisasuteis.com.br/2012/07/tutorial-extrair-codigo-fonte-android/

 

Este tutorial ensina como extrair o código fonte e os resources (layout, imagens, etc) de uma aplicação Android publicada no Google Play (Android Market).

Você deve usar esse tutorial para extrair informações de sua própria aplicação, caso por algum motivo tenha perdido o código fonte, e não para “roubar” código fonte de outras aplicações. Respeite os direitos autorais dos desenvolvedores.

O primeiro passo é conseguir o arquivo compilado (formato .apk) da aplicação Android. Você pode conseguir isso de várias maneiras, como por exemplo, procurando o arquivo para download na internet ou fazendo backup da aplicação para o SDCard (se você possui root no seu aparelho você pode utilizar o Titanium Backup.

Para comparamos o código, criei a aplicação CoisasUteis com a seguinte estrutura e código:

clip_image001[6]

Crie uma pasta e copie o arquivo .apk para ela.

clip_image002[6]

Adicione a extensão “.zip” no final do arquivo.

clip_image003[6]

Extraia os arquivos do zip para a pasta criada.

clip_image004[6]

Neste estágio você já poderá ver todas as imagens da aplicação, normalmente dentro das subpastas “drawables” da pasta “res”.  Você ainda não consegue ler os xmls e o código java.

Faça download do dex2jar, extraia para a pasta dex2jar.

clip_image005[6]

Abra o Prompt de Comando, acesse a pasta onde os arquivos do zip foram extraidos e digite:

dex2jar\dex2jar.bat classes.dex

clip_image006[6]

O arquivo classes_dex2jar.jar será criado. Abra ele com o programa JD-GUI (http://java.decompiler.free.fr/?q=jdgui) e você poderá ver o código fonte da aplicação:

clip_image007[6]

Se o código não estiver legível como neste exemplo, é porque o desenvolvedor obfuscou o código fonte antes de compilar. Para saber como fazer isso leia sobre o ProGuard.

Para fazer engenharia reversa dos arquivos xml da aplicação, faça download doAPKTool. São dois arquivos, apktoolx.x.x.tar.bz2 e apktool-install-windows-rxx-brutx.tar.bz2. Extraia ambos para apasta apktool. Faça download do arquivo framework-res.apk procurando no Google ou tente neste link. Coloque o arquivo também na pasta apktool.

clip_image008[6]

Abra o Prompt de Comando, acesse a pasta apktool e digite:

apktool if framework-res.apk

Copie o arquivo .apk original da sua aplicação na pasta apktool:

clip_image009[6]

Abra o Prompt de Comando, acesse a pasta apktool e digite o comando abaixo, trocando CoisasUteis pelo nome da seu arquivo:

apktool d CoisasUteis.apk

clip_image010[6]

Uma pasta com o nome da sua aplicação será criada:

clip_image011[6]

Dentro dela você terá acesso a todos os arquivos xml, como os de layout, menus, strings, styles, etc.

E é isso! Simples?

0 comentários :

Enviar um comentário