Android混淆 ProGuard进阶

Android混淆是一种安全措施,其作用包括:

  • 防止反编译:混淆会对代码进行重命名和重组,使得反编译后的代码难以理解和复原,从而增加攻击者分析和理解代码的难度。

  • 隐藏敏感信息:混淆可以将一些敏感信息(如API密钥、数据库密码等)进行替换、加密或隐藏,以防止攻击者获取和利用这些信息。

  • 减小应用大小:混淆可以移除未使用的代码和资源,从而减小应用的大小,提高运行效率和加载速度。

  • 优化代码:混淆可以对代码进行优化,去除冗余代码、内联方法、合并变量等,从而提高应用的性能和响应速度。

  • 防止代码注入:混淆可以将一些敏感代码进行替换、修改或删除,从而防止攻击者注入恶意代码,提高应用的安全性。

开启混淆

android {
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

minifyEnabled 属性设为 true即开启混淆。
proguardFiles 属性指定了混淆文件的所在目录。proguard-android.txt为sdk路径下默认的混淆文件,后面的’proguard-rules.pro’就是我们自定义的混淆文件。

# 指定不混淆指定的包名称。 可选的过滤器是包名称的逗号分隔列表。包名称可以包含?,*和**通配符
-keeppackagenames com.a.a,com.b.b
# 指定外部模糊字典,这样按照自定义的方式进行混淆,和下方一样,支持特殊字符串,增加反编译难度
-obfuscationdictionary filename
# 指定class模糊字典
-classobfuscationdictionary filename
# 指定package模糊字典
-packageobfuscationdictionary filename

猜你喜欢

转载自blog.csdn.net/u011106915/article/details/133034994