Guida Android reversing - Smali/Baksmali

Stato
Discussione chiusa ad ulteriori risposte.

Blitzkiller

Utente Gold
7 Novembre 2013
454
60
159
349
Ultima modifica da un moderatore:
Partendo dal presupposto che dobbiamo avere già un minimo di conoscenze su Android sul modding e soprattutto è necessario avere tutti i pacchetti java installati correttamente sul nostro pc.

Questa è una panoramica e un introduzione a Smali/Backsmali. Prima di tutto cosa sono? Smali e Baksmali sono due parole Islandesi che possono essere equivalenti a "assembler" and "disassembler".
Cosa serve questo tool? Quando un programmatore sviluppa un applicazione la scrive in java, il compilatore, Eclipse ad esempio, trasforma il codice java in eseguibile .dex

Qualche parola in più sui file .dex è necessaria. Le applicazioni per Android sono comunemente scritte in Java che la macchina poi interpreta e traduce in bytecode per Dalvik, questo bytecode è contenuto appunto nei file .dex . Vedi paragrafo Android e Java qui

Una volta decompresso un apk abbiamo disponibili i file .dex , nonostante siano disponibili risultano incomprensibili. Qui entra in gioco Baksmali che trasforma un file dex in file smali. C'è da dire che se nel caso dei file dex possiamo "assemblare" e "disassemblare" il file nel caso dei file jar ciò non sarà possibile la procedura di conversione in smali non è reversibile e lo si dovrà trasformare in dex.


La funzione di questo tool può essere usata in modi diversi:
Se si possiede una versione di Smali per windows avremmo dei file .bat lanciando il primo (Baksmali) possiamo convertire il file contenuto nella cartella.

Se no possiamo utilizzare la riga di comando per fare la medesima cosa con alcuni comandi:
Baksmali
Codice:
[COLOR=#333333]java -jar baksmali.jar -x nome.jar -o classout (dove “nome” sarà il nome del vostro file.jar)[/COLOR]
Smali
Codice:
[COLOR=#333333]java -Xmx512M -jar smali.jar classout -o classes.dex[/COLOR]


*la guida verrà aggiornata e completata.*

Attenzione
I file APK contengono del codice che è proprietà intellettuale de* suo/i sviluppatori.
Quindi è vietato postare APK o singole porzioni di codice, perché sono protetti da diritto d'autore.


Download
Smali/Baksmali
 
Stato
Discussione chiusa ad ulteriori risposte.