Obfuscapk是一款模块化的Python工具,它可以帮助研究人员在无需应用程序源代码的情况下对Android App进行混淆处理。Obfuscapk使用了apktool来对原始APK文件进行反编译,并构建出一个新的应用程序,最后再对反编译的smali代码、资源文件和Manifest文件应用混淆处理技术。混淆后的应用回保留原有的函数功能,但不同之处就在于,混淆后的应用源码会跟初始的应用源码有很大的区别。
工具架构
Obfuscapk基于模块化结构实现,以便进行功能扩展,而且还集成了一套插件系统。在Obfuscapk中,每一个混淆器都属于一个插件,并且都继承了一个抽象的基类,它们都需要实现obfuscate方法。当工具开始处理一个新的Android应用文件时,它回创建一个混淆对象来存储所有需要的信息,例如反编译的smali代码的位置,以及处理操作的状态。接下来,Obfuscapk会将混淆对象以参数的形式传递给obfuscate方法,最终发送给所有处于活动状态的插件或混淆器。
值得一提的是,广大研究人员可以根据自己的需要扩展和开发新的混淆器,研究人员可以直接向“src/obfuscapk/ob