Apktool 1: uma ferramenta para aplicativos Android de engenharia reversa
Se você é um desenvolvedor Android, hacker ou entusiasta, deve ter se perguntado como alguns aplicativos funcionam sob o capô. Você pode querer modificar alguns recursos, adicionar alguma funcionalidade ou analisar algum código. Mas como você pode fazer isso se o aplicativo for de código fechado e apenas binário?
apktool 1
É aí que o Apktool 1 é útil. Apktool 1 é uma ferramenta para aplicativos Android de engenharia reversa. Ele pode decodificar recursos para uma forma quase original e reconstruí-los depois de fazer algumas modificações. Também torna possível depurar pequenos códigos passo a passo.
Neste artigo, explicaremos o que é o Apktool 1, como instalá-lo, como usá-lo e quais são seus benefícios e limitações.
O que é o Apktool 1 e o que ele pode fazer?
Apktool 1 é uma ferramenta para aplicativos Android de engenharia reversa. É baseado no projeto Apktool original de Brut.all, mas foi atualizado e aprimorado por iBotPeaches e outros colaboradores.
Apktool 1 pode fazer o seguinte:
Desmonte os recursos para uma forma quase original, incluindo resources.arsc, classes.dex, 9.png e XMLs.
Recrie os recursos decodificados de volta ao APK/JAR binário.
Organize e manipule APKs que dependem de recursos do framework.
Depuração Smali: Depure o código smali passo a passo. Também patches baksmali/smali.
Ajuda com tarefas repetitivas.
O Apktool 1 não se destina à pirataria e outros usos não legais. Ele pode ser usado para localizar, adicionar alguns recursos ou suporte para plataformas personalizadas, analisar aplicativos e muito mais.
Como instalar o Apktool 1 em diferentes plataformas
O Apktool 1 é um aplicativo baseado em Java, então você precisa ter o Java instalado em seu sistema. Você pode baixar o Java [aqui](
Você também precisa baixar a versão mais recente do Apktool 1 [aqui]( pode escolher entre o script do wrapper do Windows (apktool.bat), o script do wrapper do Linux (apktool) ou o arquivo jar (apktool.jar).
janelas
Se você estiver usando o Windows, siga estas etapas para instalar o Apktool 1:
Baixe o script wrapper do Windows (apktool.bat) e o arquivo jar (apktool.jar) [aqui](
Coloque os dois arquivos na mesma pasta (por exemplo, C:\Apktool).
Adicione essa pasta à sua variável de ambiente PATH.
Para testar se o Apktool 1 está instalado corretamente, abra um prompt de comando e digite apktool. Você deve ver algo assim:
C:\Users\user>apktool Apktool v2.6.0 - uma ferramenta para reengenharia de arquivos apk Android com smali v2.6.0 e baksmali v2.6.0 uso: apktool [-advance] [] - Divulgar recursos do apk. empty-framework-dir [] - Remova todos os arquivos de estrutura instalados. list-frameworks - Lista os arquivos de estrutura instalados. decode-resources [] - Decodifica os recursos do apk. versão - Exibe a versão do apktool
Se você vir uma mensagem de erro, certifique-se de ter o Java instalado e a variável PATH definida corretamente.
Linux
Se você estiver usando Linux, siga estas etapas para instalar o Apktool 1:
Baixe o script wrapper do Linux (apktool) e o arquivo jar (apktool.jar) [aqui](
Coloque os dois arquivos na mesma pasta (por exemplo, /usr/local/bin).
Certifique-se de que ambos os arquivos sejam executáveis executando chmod +x apktool e chmod +x apktool.jar.
Para testar se o Apktool 1 está instalado corretamente, abra um terminal e digite apktool. Você deve ver algo assim:
user@linux:$ apktool Apktool v2.6.0 - uma ferramenta para reengenharia de arquivos apk Android com smali v2.6.0 e baksmali v2.6.0 uso: apktool [-advance] [] - Divulgar recursos do apk. empty-framework-dir [] - Remova todos os arquivos de estrutura instalados. list-frameworks - Lista os arquivos de estrutura instalados. decode-resources [] - Decodifica os recursos do apk. versão - Exibe a versão do apktool
Se você vir uma mensagem de erro, certifique-se de ter o Java instalado e a variável PATH configurada corretamente.
Mac OS
Se você estiver usando o Mac OS, siga estas etapas para instalar o Apktool 1:
Baixe o arquivo jar (apktool.jar) [aqui](
Coloque o arquivo jar em uma pasta de sua escolha (por exemplo, /Users/user/Apktool).
Crie um alias para o Apktool 1 adicionando esta linha ao seu arquivo /.bash_profile ou /.zshrc:
alias apktool='java -jar /Users/user/Apktool/apktool.jar'
Recarregue seu shell executando fonte /.bash_profile ou fonte /.zshrc.
Para testar se o Apktool 1 está instalado corretamente, abra um terminal e digite apktool. Você deve ver algo assim:
user@mac:$ apktool Apktool v2.6.0 - uma ferramenta para a reengenharia de arquivos apk Android com smali v2.6.0 e baksmali v2.6.0 uso: apktool [-advance] [] - Divulgar recursos do apk. empty-framework-dir [] - Remova todos os arquivos de estrutura instalados. list-frameworks - Lista os arquivos de estrutura instalados. decode-resources [] - Decodifica os recursos do apk. versão - Exibe a versão do apktool
Se você vir uma mensagem de erro, certifique-se de ter o Java instalado e o alias definido corretamente.
Como usar o Apktool 1 para decodificar e reconstruir arquivos APK
Apktool 1 pode decodificar e reconstruir arquivos APK, que são os pacotes que contêm aplicativos Android. Ao decodificar um arquivo APK, você pode acessar seus recursos, como imagens, sons, layouts e pequenos códigos. O código Smali é uma forma legível por humanos do Dalvik bytecode, que é o código executável executado em dispositivos Android. Ao recriar um arquivo APK, você pode aplicar suas modificações e criar um novo aplicativo.
Para usar Apktool 1 para decodificar e reconstruir arquivos APK, você precisa seguir estas etapas:
Decodificando um arquivo APK
Encontre um arquivo APK que você deseja decodificar. Você pode baixá-lo na Google Play Store, extraí-lo do seu dispositivo ou encontrá-lo online.
Copie o arquivo APK para uma pasta de sua escolha (por exemplo, /Users/user/Apktool/input).
Abra um terminal e navegue até essa pasta.
Tipo apktool d e pressione entrar. Por exemplo, se o arquivo APK for chamado com.example.app.apk, digite apktool d com.example.app.apk.
Aguarde o Apktool 1 terminar de decodificar o arquivo APK. Você deve ver algo assim:
I: Usando Apktool 2.6.0 em com.example.app.apk I: Carregando tabela de recursos... I: Decodificando AndroidManifest.xml com recursos... I: Carregando tabela de recursos do arquivo: /Users/user/Library/apktool/framework/1.apk I: Pacote de manifesto regular... I: Decodificando arquivos-recursos... I: Decodificando valores */* XMLs... I: Baksmaling classes.dex... I: Copiando assets e libs... I: Copiando arquivos desconhecidos... I: Copiando arquivos originais...
Agora você deve ver uma nova pasta com o mesmo nome do arquivo APK (por exemplo,com.example.app) em sua pasta de entrada. Esta pasta contém os recursos decodificados do aplicativo, como res (imagens, sons, layouts), smali (código smali), AndroidManifest.xml (manifesto do aplicativo), etc.
Reconstruindo um arquivo APK
Faça as alterações desejadas nos recursos decodificados do aplicativo. Por exemplo, você pode editar o código smali, alterar as imagens, modificar o manifesto, etc.
Abra um terminal e navegue até a pasta de entrada.
Tipo apktool b e pressione entrar. Por exemplo, se a pasta se chamar com.example.app, digite apktool b com.example.app.
Aguarde o Apktool 1 concluir a reconstrução do arquivo APK. Você deve ver algo assim:
I: Usando o Apktool 2.6.0 I: Verificando se as fontes foram alteradas... I: Reduzindo a pasta smali para classes.dex... I: Verificando se os recursos foram alterados... I: Construindo recursos... I: Construindo apk arquivo... I: Copiando arquivos/diretórios desconhecidos...
Agora você deve ver um novo arquivo chamado .apk em sua pasta de entrada (por exemplo, com.example.app.apk). Este é o arquivo APK reconstruído com suas modificações.
Se você deseja instalar o arquivo APK reconstruído em seu dispositivo, primeiro precisa assiná-lo. Você pode usar ferramentas como [jarsigner]( ou [apksigner]( command-line/apksigner) para fazer isso - Você também pode usar ferramentas como [Zipalign]( para otimizar o arquivo APK para carregamento mais rápido e menos uso de memória . - Depois de assinar e alinhar o arquivo APK, você pode transferi-lo para o seu dispositivo e instalá-lo. Pode ser necessário habilitar a opção de instalar aplicativos de fontes desconhecidas nas configurações do seu dispositivo.
Como usar o Apktool 1 para depurar o código smali passo a passo
O Apktool 1 também pode ajudá-lo a depurar o código smali passo a passo. O código Smali é uma forma legível por humanos do Dalvik bytecode, que é o código executável executado em dispositivos Android.Ao depurar o código smali, você pode entender como o aplicativo funciona, encontrar bugs ou injetar seu próprio código.
Para usar o Apktool 1 para depurar o código smali passo a passo, você precisa seguir estas etapas:
Configurando um depurador smali
Baixe e instale [Android Studio]( que é o IDE oficial para desenvolvimento Android.
Baixe e instale [Smalidea]( que é um plugin para Android Studio que permite depurar o código smali.
Abra o Android Studio e crie um novo projeto com qualquer nome e nome de pacote.
Copie os recursos decodificados do aplicativo que você deseja depurar (por exemplo, com.example.app) para a pasta src/main do seu projeto.
Abra o arquivo build.gradle do seu projeto e adicione estas linhas:
aplicar plug-in: 'smalidea' smalidea dexPath = 'src/main/classes.dex'
Sincronize seu projeto com arquivos Gradle.
Crie uma nova configuração de execução clicando no menu Executar e selecionando Editar configurações.
Clique no botão + e selecione Smaidea.
Nomeie sua configuração e selecione o módulo do seu projeto.
Clique em OK para salvar sua configuração.
Depurando código smali com pontos de interrupção e variáveis
Abra o arquivo smali que você deseja depurar no Android Studio. Você pode encontrá-lo na pasta src/main/smali do seu projeto.
Defina um ponto de interrupção em uma linha de código que deseja inspecionar clicando na margem esquerda do editor.
Clique no botão Debug na barra de ferramentas e selecione sua configuração.
Aguarde o Android Studio iniciar um emulador ou conectar-se a um dispositivo e instalar seu projeto como um aplicativo.
Quando o aplicativo atingir o ponto de interrupção, o Android Studio pausará a execução e mostrará a janela Debug.
Na janela Debug, você pode ver os valores das variáveis, registros e campos na guia Variáveis. Você também pode avaliar expressões, observar variáveis ou modificar valores na guia Avaliar expressão.
Você pode usar os botões na barra de ferramentas para retomar, pausar, parar, passar por cima, entrar ou sair da execução do código.
Você também pode definir pontos de interrupção condicionais, pontos de interrupção de log ou pontos de interrupção de exceção clicando com o botão direito do mouse em um ponto de interrupção e selecionando Propriedades.
Quais são os benefícios e limitações do Apktool 1?
Apktool 1 é uma ferramenta poderosa para aplicativos Android de engenharia reversa, mas também tem alguns benefícios e limitações que você deve conhecer.
Benefícios do Apktool 1
Ele pode decodificar recursos para uma forma quase original, incluindo resources.arsc, classes.dex, 9.png e XMLs. Isso permite que você acesse e modifique praticamente qualquer aspecto de um aplicativo.
Ele pode reconstruir recursos decodificados de volta ao APK/JAR binário. Isso permite que você crie um novo aplicativo com suas alterações aplicadas.
Ele pode organizar e manipular APKs que dependem de recursos do framework. Isso permite que você trabalhe com aplicativos do sistema ou aplicativos que usam estruturas personalizadas.
Ele pode depurar o código smali passo a passo. Isso permite que você entenda como um aplicativo funciona, encontre bugs ou injete seu próprio código.
Pode ajudar com tarefas repetitivas. Isso permite automatizar alguns processos ou tarefas que você realiza com frequência.
Limitações do Apktool 1
Ele não pode decodificar códigos ou recursos ofuscados ou criptografados. Isso significa que alguns aplicativos podem ser protegidos contra engenharia reversa usando técnicas como ProGuard, DexGuard ou algoritmos de criptografia.
Ele não pode assinar ou alinhar arquivos APK. Isso significa que você precisa usar outras ferramentas como jarsigner ou apksigner para assinar e alinhar os arquivos APK reconstruídos antes de instalá-los em seu dispositivo.
Ele não pode executar ou testar o aplicativo no seu dispositivo. Isso significa que você precisa usar outras ferramentas como adb ou Android Studio para executar ou testar o aplicativo em seu dispositivo.
Não é possível garantir que o arquivo APK reconstruído funcionará conforme o esperado. Isso significa que alguns aplicativos podem não funcionar corretamente ou travar após serem modificados pelo Apktool 1.
Conclusão
Apktool 1 é uma ferramenta para aplicativos Android de engenharia reversa.Ele pode decodificar recursos para uma forma quase original e reconstruí-los depois de fazer algumas modificações. Também torna possível depurar pequenos códigos passo a passo. Apktool 1 tem muitos benefícios, mas também tem algumas limitações que você deve conhecer.
Se você estiver interessado em aprender mais sobre o Apktool 1, visite seu [site oficial]( ou [repositório GitHub]( ). Você também pode encontrar alguns tutoriais, guias e exemplos online.
Esperamos que este artigo tenha ajudado você a entender o que é o Apktool 1 e como usá-lo. Feliz hacking!
perguntas frequentes
Qual é a diferença entre Apktool e Apktool 1?
Apktool é o projeto original de Brut.all, que não é atualizado desde 2015. Apktool 1 é uma bifurcação do Apktool por iBotPeaches e outros colaboradores, que foi atualizado e aprimorado com novos recursos e correções de bugs.
Posso usar o Apktool 1 para fins legais?
Sim, você pode usar o Apktool 1 para fins legais, como localização, adição de alguns recursos ou suporte para plataformas personalizadas, análise de aplicativos e muito mais. No entanto, você deve respeitar os direitos de propriedade intelectual dos desenvolvedores de aplicativos e não usar o Apktool 1 para pirataria e outros usos não legais.
Como posso aprender código smali?
O código Smali é uma forma legível por humanos do Dalvik bytecode, que é o código executável executado em dispositivos Android. Para aprender o código smali, você precisa ter algum conhecimento básico de desenvolvimento Java e Android. Você também pode consultar a [documentação oficial]( ou alguns tutoriais e guias online.
Quais são algumas alternativas ao Apktool 1?
Algumas alternativas ao Apktool 1 são:
[JADX]( - Uma ferramenta para descompilar aplicativos Android para o código-fonte Java.
[Bytecode Viewer]( - Uma ferramenta para visualizar e editar bytecode Java e Android.
[Dex2Jar]( - Uma ferramenta para converter arquivos dex Android em arquivos jar Java.
[JD-GUI]( - Uma ferramenta para visualizar o código-fonte Java de arquivos jar.
Como posso entrar em contato com os desenvolvedores do Apktool 1?
Você pode entrar em contato com os desenvolvedores do Apktool 1 visitando seu [repositório GitHub]( ou [conta do Twitter]( Você também pode relatar problemas, solicitar recursos ou contribuir com o projeto no GitHub.
0517a86e26
Comentarios