• java代码proguard代码混淆GUI使用,附带混淆map映射


    proguard代码混淆GUI使用,附带混淆map映射

    混淆结果预览

    在这里插入图片描述
    在这里插入图片描述

    本例使用的是Proguard 7.2.2,可以官网直接下载

    链接:https://pan.baidu.com/s/1PejprpEAFZrZjNVPjGc5eQ
    提取码:3jpp

    启动bin目录下的proguardgui.bat
    在这里插入图片描述
    在这里插入图片描述
    1、打开input\output
    上面的窗口设置输入的jar包和输出的jar包名称,
    下面的窗口设置依赖的jar包,rt.jar必选,如果有其他依赖也加入到这个窗口
    在这里插入图片描述
    mavne项目请加入plugin插件一次性打包依赖到项目下的lib目录 ,然后一键全选导入

    <plugin>
        <groupId>org.apache.maven.pluginsgroupId>
        <artifactId>maven-dependency-pluginartifactId>
        <version>2.8version>
        <executions>
            <execution>
                <id>copy-dependenciesid>
                <phase>packagephase>
                <goals>
                    <goal>copy-dependenciesgoal>
                goals>
                <configuration>
                    <type>jartype>
                    <includeTypes>jarincludeTypes>
                    <outputDirectory>liboutputDirectory>
                configuration>
            execution>
        executions>
    plugin>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    2、打开shrinking,这个选项是可选的,作用是移除无用的字段、类和方法的,如果开启的话最好和optimization一起开启,注意开启shrinking需要选定一个keep(不优化的字段或者方法),根据需要选择,否则proguard运行报错
    在这里插入图片描述
    鼠标悬停可以看到选项的提示信息
    在这里插入图片描述
    3、打开Obfuscation,这里是配置混淆的地方,选中Apply mapping【使用映射】 、Obfuscation dicionary【字段方法混淆】、Class obfuscation dicitionary【类名混淆】、 Package obfuscation dicitionary【包混淆】,填入map.txt的路径,map.txt是一个混淆名称的集合文本,内有596个不重复的混淆名称,已包含到下载文件中,底下窗口可以设置不进行混淆的类和方法

    在这里插入图片描述
    map.txt内容如下,混淆名称规则取自 allatori ,收费的商业java代码混淆工具
    在这里插入图片描述
    4、打开Optimization,这里是优化代码的选择,一般和shrink一起使用,Allow access modification表示允许优化过程,注意Merge interfaces aggressively 在java中不被允许,如果选中,导出的jar无法运行,优化次数一般5次就可以了

    在这里插入图片描述

    5、打开information,preverify是给类添加预校验信息,java6以上要求勾选,target指定jdk版本,底下 keep directories 可以选择保存指定包名
    在这里插入图片描述
    6、最后打开process,直接运行,等待混淆结果即可
    在这里插入图片描述

    注意,最好对一些第三方的jar包的api进行自定义的步骤封装,然后再间接调用,这样混淆效果会更加出色,如果直接调用第三方jar包的api,会因为无法直接混淆第三方api名称导致混淆效果下降

  • 相关阅读:
    基于深度学习的边缘计算与云计算结合
    div的并列和包含关系
    读书笔记--未来简史关键金句和阅读感悟
    MySQL 与 PostgreSQL的区别
    Java 并发 - ThreadLocal详解
    [vs+qt] vs2015+qt tool属性设置处无法添加模块
    手把手教你Linux下基于ITK开发基础(1)
    HTTP状态码206报错
    常见React Hooks 钩子函数用法
    如何在机器学习中使用数据集编程
  • 原文地址:https://blog.csdn.net/qq_40963076/article/details/126498346