Master the Art of Code Obfuscation from Simple to Advanced
summary
Shows that ProGuard/R8 only gives a baseline and demonstrates concrete obfuscation: renaming methods by replacing every 'i' with 'u', inserting dead bytecode loops built with constants 42 and 2 and an IREM/jump, and hiding strings via lookup-table encoding. Implements an Android Gradle plugin using ASM class remappers to rename methods and inject dead code, verifies the modified classes, compares deobfuscation limits of automated tools versus manual tuning, and contrasts Java/Kotlin bytecode with harder-to-reverse native code.
AI-written summary · about
chapters (12)
- 0:00Code obfuscation journey
- 1:51What is obfuscation and why use it
- 3:36Front-end code safety limits
- 5:23Manual obfuscation techniques
- 8:55ProGuard and R8 automated obfuscation
- 11:26Control flow obfuscation
- 14:54String encryption methods
- 17:43Android obfuscator development
- 22:19Bytecode manipulation
- 26:19Deobfuscation strategies
- 29:51Native code obfuscation
- 33:26Summary and advice
related talks
46mDiscovering and Mastering Obfuscation on Android
36mPractical obfuscation guide
45mGoing Beyond Obfuscation: Advanced Techniques for Protecting Android Apps
15mObfuscation in Mobile Apps
33mHow ProGuard Works
33mShielding Your Android App from Attackers
34mSecuring Android: Tackling Advanced Threats and Enhancing App Security
26mAn Effective Approach to Software Obfuscation
