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?

Related Posts:

  • ThroughputThroughput (ou taxa de transferência) é a quantidade de dados transferidos de um lugar a outro, ou a quantidade de dados processados em um determinado… Read More
  • TP-LINK TL-WR841ND v3.0 Bricked!  Serial console I flashed build 14896 onto my TL-WR841ND v3.0 and it bricked.I have got a PL-2303 chip based USB to Serial Converter. I found th… Read More
  • Configurando o Nagios com o Nagios Web ConfigO Nagios é uma ferramenta muito interessante (e eficiente) para monitorar serviços e servidores. Só que por outro lado, uma das coisas mais maçantes e… Read More
  • Gerenciador de Pacotes: yum Para quem não conhece Linux, instalar e desinstalar programas pode parecer uma tarefa difícil. Mas na realidade, sabendo utilizar as ferramentas cer… Read More
  • Compactação e DescompactaçãoUmas das coisas mais comuns de se ver pela Internet são os arquivos compactados. Programas, textos, códigos, geralmente tudo vem em formato compactado… Read More

0 comentários :

Enviar um comentário