ClassResGuard

Introduction: 一个超全的 Android 马甲包混淆工具
More: Author   ReportBugs   
Tags:

前言

改过马甲包的都知道每次修改都需要修改大量文件名称,ClassResGuard 由此而来,一键修改 className,resName,添加垃圾文件 下面会有详细介绍,修改完所有引用的地方都会一键替换成最新修改的,修改 layout 名称的同时可以修改 class 中相对应的 binding 名称 一键添加垃圾类(普通 java class,Activity class,layout,drawable,并且 Activity 会 自动在 AndroidManifest.xml 里注册,还会绑定生成的垃圾 xml), 下面会有详细介绍.

如果觉得此库不能满足你的需求可以看看XmlClassGuard

警告警告⚠️

由于是在本地操作,任务执行是不可逆的,故务必做好代码备份,否则代码将很难还原

使用

1.在 setting.gradle 里配置

pluginManagement {
    repositories {
        maven { url 'https://jitpack.io' }
    }
}

2.在 build.gradle(project)中配置

buildscript {
    dependencies {
        classpath "com.github.coolxinxin:ClassResGuard:1.0.8"
    }
}

3.在 build.gradle(app)中配置

apply plugin: "class-res-guard"

//以下前缀名称为必须,可参考以下配置
classResGuard {
    //renameClass Task
    //Class 的前缀名称,固定前缀配单个,随机前缀配置需要随机的前缀数组["Large","SuperT"]
    classPrefixName = ["Leo"]
    //需要过滤后缀的文件
    filterSuffixFiles = ["txt","swift","dart"]
    //renameDir Task
    //dir 的前缀名称,配置同上
    dirPrefixName = ["leo"]
    //renameRes Task
    //res 的前缀名称,配置同上
    resPrefixName = ["leo_ta"]
    //需要修改的 res 文件目录
    changeResDir = ["drawable", "layout", "mipmap-hdpi"]
    //addJunkFile Task
    //生成 java 垃圾文件的目录,可以配置不存在的目录
    junkPackage = "com.leos.superplugin.junk"
    //需要导入的 R 资源文件包,切记不要配错,否则垃圾文件中的 R 资源文件包需要自己手动导入
    junkResPackage = "com.leos.superplugin"
    //生成 java Activity 垃圾文件中的方法数
    activityClassMethodCount = 10
    //生成 java Activity 文件的数量
    activityClassCount = 1
    //生成 java 普通垃圾文件中的方法数
    normalClassMethodCount = 0
    //生成 java 普通文件的数量
    normalClassCount = 0
    //生成 layout 文件的数量
    layoutClassCount = 1
    //生成 layout 文件中 view 的数量
    layoutClassMethodCount = 10
    //生成 drawable 文件的数量
    drawableClassCount = 0
    //添加 color 资源的数量 values/color.xml
    colorCount = 10
    //添加 string 资源的数量 values/strings.xml
    stringsCount = 10
    //color 的前缀名称,colorCount>0 时,必须配置
    colorPrefixName = ["leo"]
    //strings 的前缀名称,可配可不配
    stringsPrefixName = [""]
}

如图看到以下任务

image

任务介绍

分别是 addJunkFile,renameClass,renameDir,renameRes 这 4 个任务之间没有任何关系,下面将一一介绍这些任务的功能

1.addJunkFile

该任务是一个添加垃圾文件的任务,添加一些垃圾资源降低 Google 的代码查重率

classResGuard {
   //生成 java 垃圾文件的目录,可以配置不存在的目录
    junkPackage = "com.leos.superplugin.junk"
    //需要导入的 R 资源文件包,切记不要配错,否则垃圾文件中的 R 资源文件包需要自己手动导入
    junkResPackage = "com.leos.superplugin"
    //生成 java Activity 垃圾文件中的方法数
    activityClassMethodCount = 10
    //生成 java Activity 文件的数量
    activityClassCount = 1
    //生成 java 普通垃圾文件中的方法数
    normalClassMethodCount = 0
    //生成 java 普通文件的数量
    normalClassCount = 0
    //生成 layout 文件的数量
    layoutClassCount = 1
    //生成 layout 文件中 view 的数量
    layoutClassMethodCount = 10
    //生成 drawable 文件的数量
    drawableClassCount = 0
    //添加 color 资源的数量 values/color.xml
    colorCount = 10
    //添加 string 资源的数量 values/strings.xml
    stringsCount = 10
    //color 的前缀名称,colorCount>0 时,必须配置
    colorPrefixName = ["leo"]
    //strings 的前缀名称,可配可不配
    stringsPrefixName = [""]
}

2.renameClass

该任务是一个修改 class 文件的任务,在所有的 class 类名前加前缀,需要固定前缀配单个,需要随机前缀配置多个前缀,如["Large","SuperT"]

classResGuard {
   //Class 的前缀名称,固定前缀配单个,随机前缀配置需要随机的前缀数组["Large","SuperT"]
    classPrefixName = ["Leo"]
}

3.renameDir

该任务是一个修改文件夹名称的目录,注:只修改有文件的文件夹目录,没文件的目录不会被修改

classResGuard {
    //dir 的前缀名称,配置同上
    dirPrefixName = ["leo"]
}

4.renameRes

该任务是一个修改 res 资源文件的任务,class 中的 binding 名称也会相对应的修改,无需手动修改任何文件

classResGuard {
   //res 的前缀名称,配置同上
    resPrefixName = ["leo_ta"]
    //需要修改的 res 文件目录
    changeResDir = ["drawable", "layout", "mipmap-hdpi"]
}
Apps
About Me
GitHub: Trinea
Facebook: Dev Tools