Tendo um arquivo .apk, há alguma maneira de obter seu código fonte?
Tendo um arquivo .apk, há alguma maneira de obter seu código fonte?
Respostas:
Mesmo que o ProGuard tenha sido usado, você ainda poderá obter informações interessantes. Aqui está uma pergunta do StackOverflow com uma explicação detalhada: Android: Obtendo o código-fonte de um arquivo APK . Vídeo do YouTube com um guia detalhado . E uma entrada de blog sobre isso: como recuperar o código-fonte de um arquivo APK do Android .
Se você tiver sorte e seu .apk
arquivo não estiver protegido por Proguard ou analógico, use a ferramenta APK . É uma ferramenta para aplicativos Android binários fechados, fechados e de engenharia reversa.
De um dos wiki da comunidade por Parnkul Garg no SO :
Procedimento para decodificar arquivos .apk, método passo a passo:
Crie uma nova pasta e copie sobre o arquivo .apk que deseja decodificar.
Agora renomeie a extensão deste arquivo .apk para .zip (por exemplo, renomeie de filename.apk para filename.zip) e salve-o. Agora você pode acessar os arquivos classes.dex, etc. Nesta fase, você pode ver os arquivos de desenho, mas não os arquivos xml e java, então continue.
Agora extraia esse arquivo .zip na mesma pasta (ou NOVA PASTA).
Faça o download do dex2jar e extraia-o para a mesma pasta (ou NOVA PASTA).
Mova o arquivo classes.dex para a pasta dex2jar.
Agora abra o prompt de comando e altere o diretório para essa pasta (ou NOVA PASTA). Em seguida, escreva d2j-dex2jar classes.dex
e pressione enter. Agora você tem o arquivo classes.dex.dex2jar na mesma pasta.
Faça o download do descompilador java , clique duas vezes em jd-gui, clique em arquivo aberto e abra o arquivo classes.dex.dex2jar dessa pasta: agora você obtém os arquivos de classe.
Salve todos esses arquivos de classe (em jd-gui, clique em Arquivo -> Salvar todas as fontes) pelo nome do src. Nesta fase, você obtém a fonte java, mas os arquivos .xml ainda estão ilegíveis, portanto continue.
Agora abra outra nova pasta
Coloque no arquivo .apk que você deseja decodificar
Faça o download da versão mais recente do apktool AND janela de instalação do apktool (ambos podem ser baixados no mesmo link) e coloque-os na mesma pasta
Baixe framework-res.apk e coloque-o na mesma pasta (nem todos os arquivos apk precisam deste arquivo, mas não dói)
Abra uma janela de comando
Navegue para o diretório raiz do APKtool e digite o seguinte comando:
apktool if framework-res.apk
apktool d myApp.apk
(em que myApp.apk indica o nome do arquivo que você deseja decodificar)
agora você tem uma pasta de arquivos nessa pasta e pode ler facilmente os arquivos xml do apk.
Não é um passo apenas copiar o conteúdo de ambas as pastas (nesse caso, as duas novas pastas) para a única
e aproveite o código fonte ...