on instrumenting obfuscated java bytecode with aspects
Code obfuscators are widely used tools for protecting commercial Java software. Advanced obfuscation techniques make de-compiled Java programs not re-compilable, thus greatly raising the barrier of instrumenting Java bytecode for malicious purpose. However, we have found that the aspect-oriented programming language AspectJ can be abused to overcome advanced code obfuscation and to modify obfuscated Java software effectively using its bytecode instrumentation mechanism. This paper describes such issues and reports our experiment results. We argue that the simplicity and very low cost of such malicious aspects make them worth wider attention from the Java and AspectJ community.
java code obfuscation aspect-oriented programming aspectj software protection