
Learn the basics of Android reverse engineering and the APK structure, with clear, step-by-step explanations. Gain hands-on practice to modify APK code and bypass basic application protection mechanism.
Explore how the Android Dalvik VM executes dex files from the APK, uses just-in-time compilation to translate bytecode to machine code, and how it was replaced by ART.
Explore the shift from Dalvik to Android Runtime (ART), the managed runtime for applications and system services, using ahead of time compilation to improve diagnostics, garbage collection, and boot times.
Explore how art and Dalvik integration blends jit and aot compilation to optimize Android app performance, using profile guided compilation to precompile hot methods and cache them.
Explain how java sources become dalvik dex format via class files, and how the dex structure uses string IDs, type IDs, proto IDs, and class definitions to reduce size.
Learn adb, the android bridge, to communicate with a device or emulator, use shell commands, push files, install or uninstall an apk, list packages, and view system logs.
Extracts the apk and explores its basic file structure, including androidmanifest.xml, dalvik bytecode, lib and so files, plus meta-inf with certificate and signature data.
Decompile an APK using the APK tool to obtain smali and Java code, explore Dex opcode and Android manifest content, and learn how to modify code to alter an application.
Explore how smali represents android dalvik bytecode, and follow the reverse engineering flow from java to class to dex to apk, including dex2smali conversion and apk signing.
Explore smiley code by examining variable types like void, boolean, and char, and learn hello declarations with int arguments and boolean return, plus second hello with boolean and int array.
Explore general smali declaration elements, including methods, registers, parameters, and locals, and learn how they store and manage data within a method, with prolog indicating the code line.
Explore smali registers in Dalvik bytecode, where 32-bit registers hold any type, long and double use two, and parameters reside in p0 and p1.
Explore Android Studio basics, from opening or creating projects to debugging and profiling an APK, using device managers and emulators to run and inspect code and variables.
Explore jadx to decompile an apk into Java code from dex files, view resources, and inspect the android manifest’s activity and oncreate, using search to locate classes, methods, and fields.
Explore the inside of an Android apk, including dex and dalvik virtual machine execution, apk structure, resources and assets, lib modules, manifest metadata, and asset manager access.
Sign APKs with a certificate to verify integrity and author identity, enabling signature-based permissions and secure cross-app sharing; the signing process adds meta-inf, manifest.mf, cert ASF, and cert RSA files.
Explain apk signature verification, including v1 and v2 schemes, manifest.mf, sf, cert RSA, and Sha1 fingerprint checks to validate the Android package integrity.
Modify Android APKs by decompiling, patching smali code, and repackaging, then re-sign to install on devices for investigation, research, hacking, and testing.
Patch an Android apk to bypass the debugger by modifying the login check in the code, rebuild and sign the apk, and install and verify in an emulator.
This course was created to give you a simple access into the Android Reversing process world,
The course will give you the basic methods attackers and researches are using in order to get theirs goals.
When attacker or a security research required to break into an application,
it usually done in order to:
-understand the application inner process,
-understand / explorer the application code,
-intercept the application communication & network,
-and sometimes it to simply extract some secret application data.
The aim of this course is to cover the basic of Android Hacking / Reversing .
Android Hacking can be separated into 3 main parts-
Android OS, Android Application, Networking.
In This course we will be focusing on the processing of how to reverse the application,
,modifying the application code, bypassing basic application protection mechanism and more.
The course is divided into small parts in order to simplifying complex topics.
The course provides hands on experience and exercises that will lead you step by step
to the understanding of how to investigate & hack the application so that it will effect
the application at the runtime execution.
Clarification:
-This course is not about "Penetration Android APK" but how to Reverse the APK.
-Neither professional programming experience nor assembly language knowledge are required for this course.