O que é Smali / Baksmali
A base da engenharia reversa em um aplicativo de Android é o Smali, muitos não conhecem ou não sabem da importância dele para o Android.
Todas os mods (modificações de apps) passam por isso.
Veja mais sobre Smali e Baksmali nesse post
Descrição:
Smali / baksmali é um compilador / descompilador para o formato de dex usado pela Dalvik, maquina virtual do Android. A sintaxe é vagamente baseado em sintaxe de Jasmin / dededexer, e suporta todas as funcionalidades do formato dex (anotações, debug info, linha de informações, etc.)
Os nomes "smali" e "baksmali" são equivalentes de "assembler" e "disassembler", respectivamente.
Quando descompilado, o arquivo dex volta a ser um código que pode ser lido e interpretado por um humano. mas não é o código fonte java, ele se torna um código que é chamado de smali code. Como após a conversão, os arquivos ficam com a extensão .smali, isso confunde um pouco, pois o programa, o código e os arquivos são smalis.
Recomendo altamente que você leia o artigo 'O que é Odex/Deodex' para entender o básico sobre dex
Exemplo de dex convertido para smali code
Para fazer uma edição em um app já existente, como o Whatsapp, por exemplo, era comum que o modder fizesse o mod (modificação) em java, compile seu código para a Dalvik e depois descompile ele em smali. Depois desse passo o smali ela conectado ao smali do mod.
Hacks de dinheiro infinito em jogos, mods de itens e muitas outras funções/adições são feitos com a edição do smali. Vou ensinar algumas dessas técnicas em outro post.
Como já existe descompilador de Java, é mais fácil de programar direto em código-fonte, então postarei só ele. ¯ \ _ (ツ) _ / ¯
PS. Já é possível converter um arquivo dex novamente para classes de java.
Métodos para descompilar para JAVA:
Online: Site www.javadecompilers.com/apk
Programa grátis: dex2jar e o tutorial pode ser achado aqui
Programa pago: JEB Decompiler
Esse post foi criado apenas para explicar o que é smali, farei outros posts com edição e criação de smali code. Como o que fiz com Edify Code
Mano. Eu to louco procurando um tutorial que ensina a muda as moedas de jogos onffiline . Muda as moedas pelo smali . Mano me dá umas dicas ai por favor . Eu te passo meu WHATSSAP se você quiser
ResponderExcluirPretendo fazer um tutorial sobre isso quando sobrar um tempo.
ExcluirChame na aba 'contato' para resolvermos isso.
E pra compilar de novo por o site dá?
ResponderExcluirSim.
ExcluirCom a ferramenta Advanced APK Tool você consegue fazer isso. Ela já está no blog, na categoria "ferramentas".
abs.