for the android reverser and more-so for one wishing to modify an apk, it is sometimes necessary to write large amounts of smali code. by large i mean over 10 lines, with a lot of control flow and api calls. keeping track of all those gotos, catches, switches, etc. is cumbersome unless you want to be some kind of smali wizard.
i wrote a class for antilvl to handle function hooks (really just replacements), and there is a lot of scary logic in there to have written manually. i've found it's best to create an android project in eclipse, write the code in java and decompile it into smali. the setup is easy. just download eclipse and install the ADT android plugin.
i recommend creating an android project just to prototype code. also, with the android plugin, when you run code it can either execute on your phone or start up an emulator. this has saved me tons of time while exploring various under-documented android api calls or digging around system settings or just trying to get a large bit of smali working.
writing code in java and then seeing it as smali will aid in understanding smali since you'll already be familiar with the functionality of the code. you can also automate the process of getting the smali file out by writing a shell script or batch file. here's an example batch file:
i wrote a class for antilvl to handle function hooks (really just replacements), and there is a lot of scary logic in there to have written manually. i've found it's best to create an android project in eclipse, write the code in java and decompile it into smali. the setup is easy. just download eclipse and install the ADT android plugin.
i recommend creating an android project just to prototype code. also, with the android plugin, when you run code it can either execute on your phone or start up an emulator. this has saved me tons of time while exploring various under-documented android api calls or digging around system settings or just trying to get a large bit of smali working.
writing code in java and then seeing it as smali will aid in understanding smali since you'll already be familiar with the functionality of the code. you can also automate the process of getting the smali file out by writing a shell script or batch file. here's an example batch file:
@ECHO OFF SET CLASSES_PATH=%USERPROFILE%\workspace\ProjectName\bin\classes.dex SET SMALI_OUT_PATH=\where\you\want\it SET DUMP_DIR=out SET SMALI_FILE=%DUMP_DIR%\Package\Name\Smali_File.smali SET BAKSMALI_PATH=baksmali.jar SET BAKSMALI_OPTS=--use-locals --sequential-labels ECHO Decompiling ... java -jar "%BAKSMALI_PATH%" "%CLASSES_PATH%" -output "%DUMP_DIR%" ECHO Finishing up ... COPY "%SMALI_FILE%" "%SMALI_OUT_PATH%" RMDIR /s /q "%DUMP_DIR%" PAUSE
Great Article
ReplyDeleteAndroid Final Year Project Ideas for Computer Science
Project Centers in Chennai
Bon site internet : Zonahobisaya
ReplyDeleteBon site internet : Biografi
Bon site internet : Zonahobisaya
Bon site internet : Terbanyak
Bon site internet : Zonahobisaya
Bon site internet : Resep Masakan
Bon site internet : Resep
Bon site internet : Zonahobisaya