美文网首页
android 最新基于gradle编译字符串混淆的常用配置模板

android 最新基于gradle编译字符串混淆的常用配置模板

作者: 吉凶以情迁 | 来源:发表于2021-11-24 15:58 被阅读0次
gradle中设置
applicationVariants.all { variant ->
    variant.javaCompileProvider.configure {
        it.doLast {
            JavaCompile javaCompile = variant.javaCompile
            if (variant.hasProperty('javaCompileProvider')) {
                //android gradle 3.3.0 +
                javaCompile = variant.javaCompileProvider.get()
            } else {
                javaCompile = variant.javaCompile
            }

            if ("${javaCompile.destinationDir}".toLowerCase().contains("relase")) {
                println("start classes obfuscation " + "${variant.javaCompile.destinationDir}")
                try {
                    javaexec {
                        setDefaultCharacterEncoding("utf-8")//这里传错会导致解密出现问题,
                        main("-jar")
                        args(
                                "../obfuseStringGradle.jar",
                                project.name,
                                javaCompile.destinationDir,
                                "../ignore_class.txt",
                                ENCRYPT_CONFIG_JSON
                        )
                    }
                } catch (e) {
                    println("exec encrypt fail.. " + "${e.getMessage()}")
                }

            }
        }
    }
}
obfuseStringGradle.jar是混淆程序,
ignore_class.txt 是每个正则表达式。需要忽略的词
ignore_class.txt
```^((?!lozn).)*$``` 表示不包含的就忽略加密!
ENCRYPT_CONFIG_JSON 是一些开关

该套配置可以实现一些字节码的插.桩,甚至干扰流程控制。

相关文章

网友评论

      本文标题:android 最新基于gradle编译字符串混淆的常用配置模板

      本文链接:https://www.haomeiwen.com/subject/vagntrtx.html