Existe uma maneira de obter o código fonte de um arquivo APK?

1262

O disco rígido do meu laptop acabou de travar e eu perdi todo o código-fonte de um aplicativo em que trabalho nos últimos dois meses. Tudo o que tenho é o arquivo APK armazenado no meu email a partir do momento em que o enviei a um amigo.

Existe alguma maneira de extrair meu código fonte deste arquivo APK?

Frank Bozzo
fonte
28
FYI Há verificação decompiler on-line aqui
Edwin
11
Isso significa que podemos obter o código-fonte de aplicativos que valem milhões de dólares, como Whatsapp ou Facebook? Isso é tudo de código aberto?
Faizan
3
@Faizan você já ouviu falar sobre proguard ??
Vishwajit Palankar
1
A redação da pergunta contém detalhes irrelevantes da história da vida e, como tal, pode ser interpretada como uma ferramenta recomendada . No entanto, a resposta poderia ter sido potencialmente javac -decompile, que se encaixaria nas diretrizes do SO. Parece-me que as respostas estão fora do tópico , não a pergunta.
SwiftArchitect
2
em este artigo explicam como eles engenharia reversa Pokemon Go
Anders

Respostas:

1569

Maneira simples: use a ferramenta online http://www.javadecompilers.com/apk , faça o upload do apk e obtenha o código fonte.


Procedimento para decodificar arquivos .apk, método passo a passo:

Passo 1:

  1. Crie uma nova pasta e copie sobre o arquivo .apk que deseja decodificar.

  2. 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.

Passo 2:

  1. Agora extraia esse arquivo .zip na mesma pasta (ou NOVA PASTA).

  2. Faça o download do dex2jar e extraia-o para a mesma pasta (ou NOVA PASTA).

  3. Mova o arquivo classes.dex para a pasta dex2jar.

  4. Agora abra o prompt de comando e altere o diretório para essa pasta (ou NOVA PASTA). Em seguida, escreva d2j-dex2jar classes.dex(para terminal mac ou ubuntu write ./d2j-dex2jar.sh classes.dex) e pressione enter. Agora você tem o arquivo classes.dex.dex2jar na mesma pasta.

  5. 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.

  6. 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.

Etapa 3:

Agora abra outra nova pasta

  1. Coloque no arquivo .apk que você deseja decodificar

  2. 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

  3. Abra uma janela de comando

  4. Agora execute o comando como apktool if framework-res.apk(se você não o tiver aqui ) e o próximo

  5. 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.

Passo 4:

Não é uma etapa, basta copiar o conteúdo das duas pastas (neste caso, as duas novas pastas) para a única

e aproveite o código fonte ...

Prankul Garg
fonte
26
@prankulgarg, No ponto 5 da etapa 3, estou recebendo o seguinte erro: Não é possível acessar o jarfile E: \ apktojava \ testt \\ apktool.jar
55
Em vez de escrever dex2jar classes.dex no cmd, experimente o d2j-dex2jar classes.dex . Como o dex2jar classes.dex, esse cmd está obsoleto.
Umesh
23
Para quem não consegue encontrar framework-res.apk. Faça o download aqui
atulkhatri
12
Aqueles que não encontraram o d2j-dex2jar.sh, baixe o dex2jar aqui: dex2jar.googlecode.com/files/dex2jar-0.0.9.15.zip
Reaz Murshed
14
Para as pessoas presas na etapa 2: 4, baixe esta versão e ela resolverá o problema: sourceforge.net/projects/dex2jar/files/dex2jar-2.0.zip/download feito por mim. @delive
siriuseteor77
126

Esta é uma descrição alternativa - caso alguém tenha ficado preso à descrição acima. Siga os passos:

  1. download apktool.bat(ou apktoolpara Linux) e apktool_<version>.jarem http://ibotpeaches.github.io/Apktool/install/
  2. renomeie o arquivo jar de cima para apktool.jare coloque os dois arquivos na mesma pasta

  3. abra uma caixa de dos ( cmd.exe) e mude para essa pasta; verifique se um ambiente Java está instalado (para Linux, verifique também as notas relacionadas às bibliotecas necessárias)
  4. Começar: apktool decode [apk file]

    Resultado intermediário : arquivos de recursos,AndroidManifest.xml

  5. descompacte o arquivo APK com um desempacotador de sua escolha

    Resultado intermediário :classes.dex

  6. faça o download e extraia dex2jar-0.0.9.15.zipde http://code.google.com/p/dex2jar/downloads/detail?name=dex2jar-0.0.9.15.zip&can=2&q=
  7. arraste e solte classes.dexpara dex2jar.bat(ou entre <path_to>\dex2jar.bat classes.dexem uma caixa do DOS; para uso no Linux dex2jar.sh)

    Resultado intermediário :classes_dex2jar.jar

  8. descompactar classes_dex2jar.jar(pode ser opcional dependendo do descompilador usado)
  9. descompilar seus arquivos de classe (por exemplo, com JD-GUI ou DJ Decompiler )

    Resultado : código fonte

Nota: não é permitido descompilar pacotes de terceiros; este guia destina-se a recuperar o código-fonte pessoal apenas de um arquivo APK; finalmente, o código resultante provavelmente será ofuscado

Trinimon
fonte
6
Devo acrescentar também que existe uma alternativa moderna a essa rota APKTool-> dex2jar-> JD-GUI! Apenas tente APK-fonte aberto e DEX decompiler chamado Jadx: sourceforge.net/projects/jadx/files Ele também tem versão on-line aqui: javadecompilers.com/apk
Andrew Rukin
1
É permitido (leia-se: legal) descompilar qualquer arquivo APK. Veja a seguinte pergunta: stackoverflow.com/questions/9674557/…
Rakete1111
1
Por que esses arquivos de apktoolretorno smali? Como obter o javaarquivo?
rminaj
108

Embora você possa descompilar seu APKarquivo, provavelmente ocorrerá um grande problema:

não vai retornar o código que você escreveu. Em vez disso, ele retornará qualquer que seja o compilador incorporado, com variáveis ​​com nomes aleatórios e funções com nomes aleatórios. Pode levar um tempo significativamente maior para tentar descompilar e restaurá-lo no código que você tinha, do que para começar de novo.

Infelizmente, coisas assim mataram muitos projetos.
Para o futuro, eu recomendo aprender um sistema de controle de versão, como CVS , SVN e git etc.

e como fazer backup.

Ryan Gooler
fonte
19
Um serviço como o Dropbox também ajudará.
Jeremy Logan
1
e sempre há uma maneira de gravar CD's
JerryGoyal 20/02/19
52

Há também um novo aplicativo na Play Store com o qual é possível descompilar um apk (aplicativos do sistema também) e visualizar o código-fonte diretamente no seu smartphone. Ele salva os arquivos no seu cartão SD para que você também possa vê-lo no seu computador. Não requer raiz ou outra coisa.

Basta instalar e se divertir. Eu acho que essa é a maneira mais fácil de descompilar um aplicativo.

Cilenco
fonte
1
Este é o mais fácil.
Midhun Vijayakumar
@MidhunVijayakumar você poderia fazer o apk para a conversão do código-fonte usando isso?
Sajeev 8/06/19
28

O apktool é a melhor coisa que você pode tentar. Eu salvei algum xml com ele, mas sinceramente não sei como ele funcionará com o código .java.

Eu recomendo que você tenha um repositório de código, mesmo que você seja o único codificador. Eu tenho usado o Project Locker para meus próprios projetos. Dá a você svn e git repos grátis.

Macarse
fonte
Você encontrará o apktool indispensável se quiser extrair recursos (ou seja, imagens de um aplicativo Android. Na verdade, a ferramenta não possui concorrentes!) Uma versão online do apktool está disponível aqui: www.javadecompilers.com/apktool
Andrew Rukin
23

Estes dois artigos descrevem como combinar o uso apktoole dex2jarobter um APKarquivo e criar um projeto Eclipse que pode compilá-lo e executá-lo.

http://blog.inyourbits.com/2012/11/extending-existing-android-applications.html

http://blog.inyourbits.com/2012/12/extending-existing-android-applications.html

Basicamente você:

  1. Use apktoolpara obter os arquivos de recursos do apk
  2. Use dex2jarpara obter um arquivo jar que contém as classes em um formato que o Eclipse gostará.
  3. Crie um projeto Eclipse aponte-o para os arquivos de recursos e o novo arquivo jar
  4. Abra o arquivo jar com um utilitário zip e exclua os recursos existentes
  5. Abra o arquivo jar com JDGuipara visualizar o código fonte
  6. Pegue o código-fonte que você precisa JDGui, cole-o em uma classe dentro do Eclipse e modifique-o
  7. Exclua essa classe do arquivo jar (para não ter a mesma classe definida várias vezes)
  8. Executá-lo.
Tom Hennen
fonte
2
Eu sei que esta pergunta ainda está respondida, gostaria de passar uma informação: existe um decompilador online para aplicativos do Android decompileandroid.com Carregue apk da máquina local, aguarde alguns instantes, baixe o código fonte no formato zip.
Snehal Masne
2
Parece bom. E então o site do decompileandroid também possui uma cópia de toda a sua fonte! Inteligente!
precisa saber é o seguinte
Uma pergunta, eu tenho um apk descompilado, mas em jd gui eu não sei se existem as classes reais de java, você sabe se um apk é descompilado, existem as classes Java reais?
21

O apktool funcionará. Você nem precisa conhecer o keystore para extrair o código-fonte (o que é um pouco assustador). A principal desvantagem é que a fonte é apresentada no formato Smali, em vez de Java. Outros arquivos, como o ícone e o main.xml, são perfeitamente bons e pode valer a pena recuperá-los. Por fim, você provavelmente precisará reescrever seu código Java do zero.

Você pode encontrar apktool aqui . Basta baixar o apktool e o assistente apropriado (para Windows, Linux ou Mac OS). Eu recomendo usar uma ferramenta como 7-zip para descompactá-los.

Ryan Berger
fonte
16

Há algumas maneiras de fazer isto:

  1. Use o recurso "Perfil ou depuração APK" no Android Studio 3.0.

    Ele permite que você abra e explore APKs no Android Studio. As classes são descompiladas em smali. Os recursos não são extraídos e coisas como "Ir para a definição", "Localizar todas as referências" e depuração não funcionam sem o código fonte (android studio 3.0 canary 9). Alguns recursos adicionais do smali podem funcionar com o smalidea .

    android-studio

    selecione o arquivo

    código

  2. Use jadx .

    O Jadx descompila o código em um determinado APK para arquivos de origem java.

    jdax-img

  3. Use apktool .

    O Apktool é uma ferramenta de linha de comando que extrai recursos e descompila o código no smali para um determinado apk. Você pode recompilar usando o apktool também. Aqui está um exemplo disso em ação:

    $ apktool d test.apk
    I: Using Apktool 2.2.4 on test.apk
    I: Loading resource table...
    I: Decoding AndroidManifest.xml with resources...
    I: Loading resource table from file: 1.apk
    I: Regular manifest package...
    I: Decoding file-resources...
    I: Decoding values */* XMLs...
    I: Baksmaling classes.dex...
    I: Copying assets and libs...
    I: Copying unknown files...
    I: Copying original files...
    $ apktool b test
    I: Using Apktool 2.2.4 on test
    I: Checking whether sources has changed...
    I: Smaling smali folder into classes.dex...
    I: Checking whether resources has changed...
    I: Building resources...
    I: Building apk file...
    I: Copying unknown files/dir...
    
0xcaff
fonte
Eu tentei o jadx, mas mesmo com o helloworld simples, embora ele seja descompilado em java, ainda assim, tentar abrir o projeto no android studio e compilá-lo de volta ao apk, falha por vários motivos (arquivos de duplicação, etc.). Existe algum método que cria java que pode ser compilado de volta ao apk?
ransh
1
@ransh Normalmente, uso o jadx para ler o código e o apktool para modificar o código. O apktool não cria java, mas permite recompilar.
0xcaff
0xcaff, obrigado pelo esclarecimento. isso faz sentido agora. Porque tentar compilar um java de descompilação no estúdio android, não estava funcionando.
Ransh
7

Vou mostrar outra maneira de descompilar os arquivos .apk .

Você pode seguir os 2 primeiros passos de " prankul garg ". Então você tem outras oportunidades:

Etapa 3':

Baixe o "JD-GUI" , fácil de encontrar. Abra o seu arquivo .jar em "jd-gui.exe". (Arquivo> Abrir arquivo> 'encontrou seu arquivo .jar '). Após esse procedimento, você pode salvar todos os recursos em um arquivo .zip .

Assim,

1º - você precisa renomear o arquivo .apk para .zip

2º - Você precisa decodificar o arquivo .dex (se desejar, decodifique o arquivo .apk para dex2jar , isso é possível)

3º - Você precisa decodificar o arquivo .jar com JD-GUI

Franklin Hirata
fonte
20
O que essa resposta fornece que os outros não?
Jørgen R
Você realmente não precisa renomeá-lo para compactar. Eu poderia abrir o arquivo apk diretamente com o 7-zip.
Miva2
7

Abaixo da ferramenta ONLINE :

http://www.javadecompilers.com/apk

ele faz TODAS com um clique: arquivos .java descompilados + recursos + xml (em um arquivo .zip) com muito bom descompilador (jadx retorna código java em locais / funções em que outras compilações retornam comentários dentro de uma função como "incapaz de descompilar" montador android / código da máquina)

Kamil Kiełczewski
fonte
Sim, isso é ótimo, mas em vez de nomes de funções, todos os nomes de funções foram alterados para CS1001 e assim por diante. Então, como reconhecer isso. e mais uma coisa: podemos usar esse apk descompilado diretamente como nosso projeto de estúdio para Android? Funcionará?
Zia Ur Rahman
com que finalidade usamos para descompilar o apk de alguns, se não podemos usar a funcionalidade deles em nossos aplicativos.
Zia Ur Rahman
@ZiaUrRahman Eu não sei. No entanto, no meu caso, descompilar o código para analisar o algoritmo. Você verifica se o código descompilado dessa ferramenta pode ser compilado pelo android studio de maneira totalmente automática - ou precisa de algum "processamento humano"?
Kamil Kiełczewski 27/02
1
Eu importei o projeto descompilado no android studio, mas o Gradle lá e o projeto têm muitos arquivos, mas não o entenderam até executá-lo. Simplesmente não funcionou. Eu preciso tornar o projeto descompilado totalmente funcional no android studio e, em seguida, obter algumas funcionalidades básicas de alguns, e depois quero usá-lo / incorporá-lo no meu próprio projeto. Então, existe alguma maneira de como fazer isso?
Zia Ur Rahman
6

Este site https://www.apkdecompilers.com/ fez isso automaticamente.

Tentei primeiro o site mencionado na resposta aceita, mas isso não funcionou para mim.

M. Usman Khan
fonte
Eu não poderia retrive meu código fonte java ... é appeare somethins como arquivo anexado e ..
iman kazemayni
@imankazemayni no link acima, "navegue" até o arquivo APK e clique em "Descompilar seu APK". Levará algum tempo e, em seguida, deverá fornecer o código-fonte, se o código não estiver criptografado.
M. Usman Khan
você conhece o impacto multidex na criptografia?
Iman kazemayni
6

Eu, pessoalmente, recomendo Mostrar o Java Android App para obter o código-fonte. Você pode baixá-lo da play store ou aqui

Codelover
fonte
A maioria dos compiladores on-line não está funcionando, mas este aplicativo está funcionando. Obrigado
Sunil
4

Apktool para engenharia reversa de aplicativos Android fechados e binários de terceiros.

Ele pode decodificar recursos para a forma quase original e reconstruí-los após fazer algumas modificações.

Torna possível depurar o código smali passo a passo. Também facilita o trabalho com um aplicativo, devido à estrutura de arquivos do tipo projeto e à automação de algumas tarefas repetitivas, como a criação de apk, etc.

http://ibotpeaches.github.io/Apktool/

Biswajit Karmakar
fonte
3

apktool é o caminho a percorrer. O serviço apktool on-line também existe: http://www.javadecompilers.com/apktool

Obviamente, existem algumas limitações devido à 'natureza online' do serviço: você pode extrair e pesquisar ativos e o arquivo de manifesto, mas é impossível recompilar o aplicativo no momento.

Ainda assim, essa é uma maneira fácil de 'abrir' o aplicativo Android.

Andrew Rukin
fonte
3

Você pode experimentar o DexPatcher . Ele ainda se integra ao Android Studio. Ele usa Apktool e Dex2Jar internamente.
Você também pode usar essas ferramentas independentemente. O Apktool decompila o apk e extrai os arquivos .dex, que podem ser convertidos em jar usando o Dex2Jar. Jar pode ser descompilado usando JD-GUI . Você pode ver o código Java com a ajuda dessa ferramenta. Embora a similaridade do código descompilado com o código real não possa ser garantida. Existem algumas ferramentas avançadas de ofuscação de código disponíveis no mercado, que alteram o código para dificultar a descompilação / compreensão. por exemplo. Proguard

Lakshmikant Deshpande
fonte
Olá Como usar o DexPatcher com o Android Studio?
Ravi152 23/01/19
Não é possível explicar tudo nos comentários. O Google é seu amigo :) Existem alguns bons tutoriais do YouTube também.
Lakshmikant Deshpande
2

com base na sua condição, se o seu android apk:

Condition1: NÃO endurecer (por Tencent Legu / Qihoo 360 / ...)

Choice1: usando o serviço online

tal como:

usando www.javadecompilers.com

vamos para:

decodificar automaticamente de apk para java sourcecode

passos:

uploadarquivo apk + clique Run+ aguarde um pouco + clique Downloadpara obter o zip + descompacte ->

sources/com/{yourCompanyName}/{yourProjectName}

é o seu código-fonte java esperado

Choice2: descompilar / crack sozinho

use a ferramenta relacionada para descompilar / crack você mesmo:

use jadx/ jadx-guiconverter apkparajava sourcecode

faça o download do jadx-0.9.0.zip e descompacte para get bin/jadx, depois:

  • modo de linha de comando:
    • na execução do terminal: jadx-0.9.0/bin/jadx -o output_folder /path_to_your_apk/your_apk_file.apk
    • output_folder mostrará decodificado sourceseresources
      • sources/com/{yourCompanyName}/{yourProjectName} é o seu esperado java sourcecode
  • Modo GUI
    • clique duas vezes para executar jadx-0.9.0/bin/jadx-gui(Linux jadx-gui.sh/ Windows jadx-gui.bat)
    • abrir apkarquivo
    • ele decodificará automaticamente -> veja seu código-fonte java esperado
    • save all ou save as Gradle project

por exemplo:

Condition2: endurecer (por Tencent Legu / Qihoo 360 / ...)

o principal método de 3 steps:

  1. apk/app to dex
  2. dex to jar
  3. jar to java src

explicação detalhada:

Passo 1: apk/app to dex

use o FDex2arquivo de despejo / conexão da ferramenta ( / DumpDex) (um ou vários) dexdo aplicativo em execução

passos:

preparar o ambiente

despejar dexdo aplicativo em execução

  • execute FDex2e clique no nome do seu apk para ativar mais tarde a captura / conexão do dex

  • (no telefone / emulador) execute seu aplicativo
  • encontre e copie os recursos apk completos do despejo em /data/data/com/yourCompanyName/yourProjectName
    • em sua pasta raiz normalmente encontrará vários dexarquivos

Passo 2: dex to jar

use o arquivo tool ( dex2jar) convert (o específico, contendo a lógica do aplicativo) dexem jararquivo

baixe o dex2jar got dex-tools-2.1-SNAPSHOT.zip , descompacte got dex-tools-2.1-SNAPSHOT/d2j-dex2jar.she

sh dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f your_dex_name.dex

por exemplo:

dex-tools-2.1-SNAPSHOT/d2j-dex2jar.sh -f com.xxx.yyy8825612.dex
dex2jar com.xxx.yyy8825612.dex -> ./com.xxx.yyy8825612-dex2jar.jar

Etapa 3: jar to java src

use uma das ferramentas:

converter jarparajava src

para do efeito de conversão jar para java src:

Jadx> Procyon> CRF>>JD-GUI

por isso, recomende o uso: Jadx/jadx-gui

passos:

  • clique duas vezes para executar jadx-gui
  • abrir dexarquivo
  • File -> save all

por exemplo:

java src exportado:


Uma explicação mais detalhada pode ver o meu tutorial em chinês sobre o e- livro :

crifan
fonte
2

O Android studio oferece a você analisar qualquer arquivo apk.

1 - No menu Build, escolha a opção apk para analisar e selecione o arquivo apk. 2 - Isso resultará em você no arquivo classes.dex e em outros arquivos. 3 - Clique em classes.dex, que fornecerá a lista de pastas, pacotes, bibliotecas e arquivos. 4 - As configurações do estúdio e do Android instalam um plug-in chamado "Dex para Jar". 5 - clique em qualquer arquivo de atividade do seu projeto extraído e escolha dex para jar no menu de compilação.

Isso resultará em você o código real do seu arquivo java.

Felicidades.

Rohit Patil
fonte
1

A maneira mais simples é usar o Apk OneClick Decompiler. Este é um pacote de ferramentas para descompilar e desmontar APKs (pacotes para Android).

RECURSOS

  • Todos os recursos são integrados ao menu do botão direito do Windows.
  • Descompile as classes APK para códigos-fonte Java.
  • Desmonte o APK para codificar smali e decodificar seus recursos.
  • Instale o APK no telefone com o botão direito do mouse.
  • Recompile o APK após editar o código e / ou os recursos smali. Durante a recompilação:
  • Otimizar imagens png
  • Assinar apks
  • Zipalign

REQUISITOS

O Java Runtime Environment (JRE) deve estar instalado.

Você pode baixá-lo neste link Apk OneClick Decompiler

Aproveite isso.

Masoud Mokhtari
fonte
1

Eu encontrei o seguinte como o método mais simples:

  1. Renomeie seu app.apk para app.zip (altere a extensão de apk para zip)
  2. Extraia o arquivo zip em uma pasta
  3. Use a ferramenta JADX para ler o código-fonte, presente no arquivo classes.dex.
Masood Anwar
fonte
1

Existe um aplicativo para isso e geralmente leva apenas alguns cliques e pronto. https://github.com/Nuvolect/DeepDive-Android

  1. Selecione Aplicativos, em "Aplicativos Instalados", selecione seu aplicativo. Se não estiver lá, você pode carregar o APK.
  2. Selecione "Extrair APK"
  3. Selecione "Descompactar APK"
  4. Selecione "Descompilar com Jadx". Isso pode levar alguns segundos ou alguns minutos, dependendo da velocidade do seu dispositivo

Depois disso, você pode procurar o código fonte, baixe-o para outro computador com o elFinder ou pesquise-o usando o Lucene.

Além da Jadx, possui decompiladores CFR e Fernflower.

MobileMateo
fonte
0

Estou enlouquecendo há dias tentando fazer com que o dex2jar funcione em um laptop fedora 31 contra um apk que simplesmente não funcionava. Esse script python 3 fez o truque em minutos e a instalação do jd-gui tornou os arquivos de classe legíveis por humanos.

http://java-decompiler.github.io/

https://github.com/Storyyeller/enjarify

especificamente, aqui está o que eu corri:

# i installed apktool before the rest of the stuff, may not need it but here it is
$> cd /opt
$> sudo mkdir apktool
$> cd apktool/
$> sudo wget https://raw.githubusercontent.com/iBotPeaches/Apktool/master/scripts/linux/apktool
$> sudo wget https://bitbucket.org/iBotPeaches/apktool/downloads/apktool_2.4.1.jar
$> sudo mv apktool_2.4.1.jar apktool.jar
$> sudo mv apktool* /usr/bin/
$> sudo chmod a+x /usr/bin/apktool*

# and enjarify
$> cd /opt
$> sudo git clone https://github.com/Storyyeller/enjarify.git
$> cd enjarify/
$> sudo ln -s /opt/enjarify/enjarify.sh /usr/bin/enjarify

# and finally jd-gui
$> cd /opt
$> sudo git clone https://github.com/java-decompiler/jd-gui.git
$> cd jd-gui/
$> sudo ./gradlew build

# I made an alias to kick of the jd-gui with short commandline rather than long java -jar blahblahblah :)
$> echo "jd-gui='java -jar /opt/jd-gui/build/launch4j/lib/jd-gui-1.6.6.jar'" >> ~/.bashrc

Agora deve-se conseguir o seguinte para obter os arquivos de classe:

$> enjarify yourapkfile.apk

E para iniciar o jd-gui:

$> jd-gui

Em seguida, basta abrir seus arquivos de classe!

RJ Cole
fonte
0

Desenvolvi um Tool - Code Analyzer, que roda em iPhone / iPad / Mac, para analisar arquivos Java / Android, https://decompile.io

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Qing Xu
fonte
0

Use esta ferramenta http://www.javadecompilers.com/

Mas, recentemente, uma nova onda de decompiladores entrou no mercado: Procyon, CFR, JD, Fernflower, Krakatau, Candle.

Aqui está uma lista de decompiladores apresentados neste site:

CFR - Gratuito, sem código-fonte disponível, http://www.benf.org/other/cfr/ Autor: Lee Benfield

Descompilador muito bem atualizado! O CFR é capaz de descompilar os recursos modernos do Java - módulos Java 9, Java 8 lambdas, comutadores Java 7 String etc. Ele até fará uma tentativa decente de transformar arquivos de classe de outros idiomas da JVM de volta em java!

JD - gratuito apenas para uso não comercial, http://jd.benow.ca/ Autor: Emmanuel Dupuy

Atualizado em 2015. Possui interface visual e plug-ins próprios para Eclipse e IntelliJ. Escrito em C ++, muito rápido. Suporta Java 5.

Procyon - fonte aberta, https://bitbucket.org/mstrobel/procyon/wiki/Java%20Decompiler Autor: Mike Strobel

Fernflower - código aberto, https://github.com/fesh0r/fernflower Autor: Egor Ushakov

Atualizado em 2015. Descompilador analítico Java muito promissor, agora se torna parte integrante do IntelliJ 14. ( https://github.com/JetBrains/intellij-community/tree/master/plugins/java-decompiler ) Suporta Java até a versão 6 (Anotações, genéricos, enumerações)

JAD - fornecido aqui apenas por razões históricas. Gratuito, sem código-fonte disponível, jad download mirror Autor: Pavel Kouznetsov

Faxriddin Abdullayev
fonte