Member-only story
Unlocking the Secrets of Android: A Beginner’s Guide to Mastering Smali Code
If you have ever been interested in Android development or security (or better yet, both, lol) you have probably heard the term SMALI.
Let’s start with two simple questions:
What is Smali? Why is it so important?
In this article, I’ll introduce you to some basic concepts of Smali, a language that underpins the Android world and might seem daunting to beginners. If your goal is to learn how to conduct security tests on mobile apps or simply to understand more about them, knowing Smali is essential.
What is Smali?
In the Android world, smali is a sort of assembly language used to represent .dex (Dalvik Executables) files. During the development process, Android applications are compiled into .dex format, then packaged into apk and distributed in ways you are most likely already familiar with. If you have ever played with tools used for mobile security testing, you will almost certainly know about apktool. Well, using apktool you can decompile an apk and get the smali code, which is not as readable as a high-level language, but it is certainly more readable than pure machine language.
How can you obtain the smali code from an APK?