Proguard混淆工具使用方法图文说明

2023-10-30

Proguard的理论知识请看这篇文章:

http://www.cnblogs.com/cr330326/p/5534915.html

1、下载Proguard

官网地址:http://proguard.sourceforge.net/(不墙很难打开)

百度网盘分享地址:

链接: https://pan.baidu.com/s/1c2kReQ8 密码: iepp

2、准备好你要混淆的jar包

3、启动Proguard

解压proguard,执行 bin目录下的proguardgui.bat



4、选择输入输出和jar包支持

点击左边“input/output”菜单,然后点击右边的“Add input”按钮,添加需要混淆的jar包。
然后点击“add output”,选择输出的路径和包名。


下面开始添加支持库。
程序引用的所有jar包以
jre下面的所有jar
servlet.jar等
其他:例如web容器(tomcat等)中需要用到的jar包
把以上所有的jar都copy到一个文件夹中,点击右边的“add”,进行添加。
PS:默认会带一个rt.jar,注意不要重复。

5、配置

除了java版本,和keep开头的选项,其他基本不用改。关键是后面手动修改的部分。










6、修改配置文件(重点)

点击save保存


修改配置文件,主要是keep(keep混淆会造成问题的class)

具体配置方法,请参照:http://www.cnblogs.com/cr330326/p/5534915.html


回到欢迎界面,重新加载修改后的配置文件


切换到Process菜单,点击View查看修改是否生效。如果没有生效请重启Proguard再次首页重新加载配置文件


7、混淆

点击Process键混淆,成功如下。



这里可能会出现一系列错误,需要自己根据提示解决

例如最常见的

1、缺少jar包,检查第四步添加的jar包是否齐全

2、N个class混淆出错,检查class是否有编译错误,检查jar包路径是否为正常jar包,实在不行使用keep不进行混淆


8、配置说明

参数: 
-include {filename}    从给定的文件中读取配置参数 
-basedirectory {directoryname}    指定基础目录为以后相对的档案名称 
-injars {class_path}    指定要处理的应用程序jar,war,ear和目录 
-outjars {class_path}    指定处理完后要输出的jar,war,ear和目录的名称 
-libraryjars {classpath}    指定要处理的应用程序jar,war,ear和目录所需要的程序库文件 
-dontskipnonpubliclibraryclasses    指定不去忽略非公共的库类。 
-dontskipnonpubliclibraryclassmembers    指定不去忽略包可见的库类的成员。 


保留选项 

-keep {Modifier} {class_specification}    保护指定的类文件和类的成员 
-keepclassmembers {modifier} {class_specification}    保护指定类的成员,如果此类受到保护他们会保护的更好
-keepclasseswithmembers {class_specification}    保护指定的类和类的成员,但条件是所有指定的类和类成员是要存在。 
-keepnames {class_specification}    保护指定的类和类的成员的名称(如果他们不会压缩步骤中删除) 
-keepclassmembernames {class_specification}    保护指定的类的成员的名称(如果他们不会压缩步骤中删除)
-keepclasseswithmembernames {class_specification}    保护指定的类和类的成员的名称,如果所有指定的类成员出席(在压缩步骤之后) 
-printseeds {filename}    列出类和类的成员-keep选项的清单,标准输出到给定的文件 
 

压缩 

-dontshrink    不压缩输入的类文件 
-printusage {filename} 
-whyareyoukeeping {class_specification}     
 
优化 
-dontoptimize    不优化输入的类文件 
-assumenosideeffects {class_specification}    优化时假设指定的方法,没有任何副作用 
-allowaccessmodification    优化时允许访问并修改有修饰符的类和类的成员 
 

混淆 

-dontobfuscate    不混淆输入的类文件 
-printmapping {filename} 
-applymapping {filename}    重用映射增加混淆 
-obfuscationdictionary {filename}    使用给定文件中的关键字作为要混淆方法的名称 
-overloadaggressively    混淆时应用侵入式重载 
-useuniqueclassmembernames    确定统一的混淆类的成员名称来增加混淆 
-flattenpackagehierarchy {package_name}    重新包装所有重命名的包并放在给定的单一包中 
-repackageclass {package_name}    重新包装所有重命名的类文件中放在给定的单一包中 
-dontusemixedcaseclassnames    混淆时不会产生形形色色的类名 
-keepattributes {attribute_name,...}    保护给定的可选属性,例如LineNumberTable, LocalVariableTable, SourceFile, Deprecated, Synthetic, Signature, and InnerClasses. 
-renamesourcefileattribute {string}    设置源文件中给定的字符串常量


以上流程及配置主要参照了一下网址

http://www.cnblogs.com/cr330326/p/5534915.html

http://blog.csdn.net/zhangdaiscott/article/details/45368261


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Proguard混淆工具使用方法图文说明 的相关文章

  • .Xauthority文件 有问题,导致无法登录

    在用户 home目录下的 Xauthority文件 解决办法 1 修改 2 rm 删除 重启
  • splint的安装与使用

    简介 splint是一个GNU免费授权的 Lint程序 是一个动态检查C语言程序安全弱点和编写错误的程序 Splint会进行多种常规检查 包括未使用的变量 类型不一致 使用未定义变量 无法执行的代码 忽略返回值 执行路径未返回 无限循环等错
  • mvn deploy时返回400解决方法.md

    使用mvn deploy命令 将打包后的jar包上传到私服时 出现了下面的问题 Return code is 400 ReasonPhrase Bad Request gt Help 1 一般通用有3个导致出现上面问题的原因 1 pom x
  • Github Copilot连接不上服务器

    现象 报错 ERROR default 2023 09 08T15 47 01 542Z GitHub Copilot could not connect to server Extension activation failed conn
  • Mac安装homebrew报错curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation

    homebrew安装时 一般直接在终端直接输入命令 usr bin ruby e curl fsSL https raw githubusercontent com Homebrew install master install 但是这个方
  • 不安装Visual Studio,只用Windows SDK搭建VC环境

    首先你需要下载的是 Microsoft Windows SDK for Windows 7 and NET Framework 4 下载以后你得到的是一个网络安装文件 确保网络的连接 安装Windows SDK 7 1 注意得到的Windo
  • Android logcat调试工具的重定位输出日志

    在tools目录里面 命令行中输入adb logcat gt d 1 txt即可
  • LaTeX各种矩阵输入方法总结

    begin Bmatrix 1 2 4 5 end Bmatrix 结果 1 2
  • vscode开启鼠标滚轮缩放字体大小设置

    打开首选项 进入设置 搜索zoom 给滚轮缩放字体选项打上钩 完成
  • MD5,SHA1,SHA256,NTLM,LM等Hash在线破解网站收集

    MD5 http hashchecker de find html http paste2 org p 441222 http r0ot podzemlje net x md5 http hashkiller com index php a
  • 更改cpuID(CPU序列号)指南

    最近在使用一个软件 购买了许可 该license绑定了机器的cpuID 然该软件并不能正在运行在windows 8 64bit操作系统上 具体表现为运行3 5mins后就崩溃 于是 我计划使用VMware虚拟机虚拟出相应的硬件以及windo
  • 找不到本地组策略编辑器找不到gpedit.msc 的解决方法

    通常打开本地组策略编辑器 只需要 win R 在运行里输入 gpedit msc 就可以打开 但是 在windows 家庭版和学生版里 会提示找不到路径 可以用以下办法解决 新建一个文本文档 名字随便取 编辑以下批处理内容 保存后将后缀名改
  • VS2005(VC++)远程调试方法

    仅我目前了解很多人还在使用成本很高的本地调试方法 即在需要调试的机器上安装VS环境 这样的好处就是直接 但是成本很高 要在目标机器安装一个VS的Copy 国内可能不是问题 还有源代码安全问题 同步问题等等 开始 已知 A B两个服务器 如果
  • 解决 linux在 VMware中的问题 汇总 (***)

    目录 解决Ubuntu在VMware中不能全屏的问题 无需安装 VMware tools 解决虚拟机与宿主机的文件共享问题 Ubuntu Window下 X2Go 安装 连接 同步 上传文件夹 复制 粘贴 桌面共享 Linux挂载共享文件夹
  • git clone 下载 其他分支

    总是记不住 可能是因为用得少 如果 已经 clone了 master分支 方法 1 那么 本地 git pull 然后执行 git checkout b 本地分支名 origin 远程分支名 这样就能下载 到远程分支 并建立本地关联 方法2
  • Linux安装Phabricator

    背景 公司管理需要 为开发团队寻找一款代码审查工具 最终选择了Phabricator ubuntu14 04 LTS 安装 使用官网上提供的install sh即可 参考链接 https secure phabricator com div
  • 解决 windows 下浏览器无法上网,QQ/微信正常上网

    解决 windows 下浏览器无法上网 QQ 微信正常上网 解决 windows 下浏览器无法解析DNS配置 gt 注意 本处只 提供一种解决思路 并不代表所有问题都能被解决 可以尝试一下 这种问题 一般在浏览器中会 直奔主题 原因 1 查
  • VS Code-此时不应有 &

    描述 用vs code运行python代码时 报 此时不应有 解决方式 ctrl 调出终端 将默认终端设置成powershell 退出 重新加载代码
  • BeyondCompare4破解

    转自 跳不出循环了 原文链接 https blog csdn net weixin 39298366 article details 84390224 将以下操作保存为bat文件 然后双击运行即可 reg delete HKEY CURRE
  • token保活设计.md

    如果我们要使用token机制用以标识用户登录状态 以获得请求相关资源接口的权限 让你来设计一套方案 以为怎么设计呢 通常有两种思路 1 使用refreshtoken获取新的accesstoken 登录成功之后 返回一个返回refreshto

随机推荐

  • java基础学习总结——面向对象1

    目录 一 面向过程的思想和面向对象的思想 二 简单理解面向对象 三 面向对象的设计思想 四 对象和类的概念 五 如何抽象出一个类 六 类 对象 之间的关系 七 Java与面向对象 八 为什么使用面向对象编程 一 面向过程的思想和面向对象的思
  • [C++]:for循环for(int num : nums)

    前言 时不可以苟遇 道不可以虚行 一 基于范围的for循环的基本语法 在c 11里 为for循环 添加一个container 它就会自动迭代 实现了对于vector型变量vec的内容打印 变量i遍历vector中的每一个元素 直到vecto
  • 解决RabbitMQ报错问题

    解决RabbitMQ报错问题 rabbitmq server service RabbitMQ broker Loaded loaded usr lib systemd system rabbitmq server service disa
  • 周志华《机器学习》课后习题解答系列(六):Ch5.10 - 卷积神经网络实验

    本系列相关答案和源代码托管在我的Github上 PY131 Machine Learning ZhouZhihua 卷积神经网络实验 手写字符识别 注 本题程实现基于python theano 这里查看完整代码和数据集 1 基础知识回顾 1
  • 使用PowerShell脚本来一键开启、关闭FTP服务

    可以使用PowerShell脚本来实现这一目标 下面是两个简单的PowerShell脚本 一个用于开启FTP服务 另一个用于关闭FTP服务 开启FTP服务 保存以下脚本为 Enable FTP ps1 开启IIS和FTP功能 Enable
  • Nextjs 的 App Router 路由模式核心概念简介

    Nextjs App Router 简介 Next js 13 引入了新的应用路由器 它建立在服务端组件之上 支持布局 嵌套路由 加载状态 错误处理等等 本文将介绍 App Router 新路由模型的基本概念 术语 树 Tree 一种用于可
  • neo4j--Cypher语法练习(LOAD CSV)

    1 21 LOAD CSV LOAD CSV用于从CSV文件中导入数据 CSV文件的URL可以由FROM后面紧跟的任意表达式来指定 需要使用AS来为CSV数据指定一个变量 LOAD CSV支持以gzip Deflate和ZIP压缩的资源 C
  • el-form表单回车提交,浏览器会刷新页面

    当el from 只有一个输入框时候 回车提交表单 刷新页面 原因 由于当表单只有一文本框时 按下回车将会触发表单的提交事件 从而导致页面刷新 解决办法 在 el from 加上 submit native prevent
  • 【经典】华为远程机试题分享(跟进)

    在上一篇博客中有说到面试的具体事儿 昨晚那种方法做出来之后 感觉可读性不好 也就是一般情况下很难看懂代码 所以接近睡着时我又想到一个办法比较简单 而且易懂 所以写这篇博客和大家分享一下吧 具体就围绕下图这个核心问题来做 其实我的想法很简单
  • 【Espruino】NO.18 使用L298N驱动直流电机

    http blog csdn net qwert1213131 article details 38584743 本文属于个人理解 能力有限 纰漏在所难免 还望指正 小鱼有点电 Espruino中文社区 小学时代玩过玩具四驱车 各种奇葩霸气
  • ChatGPT写小论文

    ChatGPT写小论文 只是个人对写小论文心得 从知乎 知网自己总结的 有问题 可以留个言我改一下 别删我的东西啊CSDN 文章目录 ChatGPT写小论文 1 写小论文模仿实战 狗头 0 小论文组成 1 好论文前提 2 标题 3 摘要 4
  • Transformer(三)--论文实现:transformer pytorch 代码实现

    转载请注明出处 https blog csdn net nocml article details 124489562 本系列传送门 Transformer 一 论文翻译 Attention Is All You Need 中文版 Tran
  • games101笔记 Shading

    什么是shading 不同的物体应用不同的材质的过程 就是计算出物体具体应该在的地方 物体的光照 物体本身应该有的材质 Blinn Phong Reflectance Model Blinn Phong反射模型 Blinn Phong Re
  • MySql执行顺序及执行计划

    一 mySql的执行顺序 mysql执行sql的顺序从 From 开始 以下是执行的顺序流程 1 FROM table1 left join table2 on 将table1和table2中的数据产生笛卡尔积 生成Temp1 2 JOIN
  • Spring和springMVC启动流程

    首先Spring是建立在Servlet容器之上的 所有web工程的初始位置都是在web xml文件中 它配置了servlet的上下文 context 和监听器 listener spring的启动过程其实就是ioc的启动过程 1 首先初始化
  • linux下出现ping:unknown host www.baidu.com问题时的解决办法——ubuntu下局域网络的配置

    如果ping域名的时候出现ping unknown host xxx xxx 但是ping IP地址的时候可以通的话 可知是dns服务器没有配置好 查看一下配置文件 etc resolv conf 里面是否有nameserver xxx x
  • 算力和硬件的关系_算力就是生产力:中国AI算力占全球三成

    12月15日 IDC与浪潮集团联合发布了 2020 2021中国人工智能计算力发展评估报告 报告从旨在评估中国人工智能发展的现状 为推动产业AI化发展提供极具价值的参考依据和行动建议 据报告显示 预计2020 年中国AI市场规模将达到 62
  • chatgpt(0)-pycharm-vscode安装使用插件Codeium-bito

    1 pycharm codeium 下载插件 codeium 登录 一直出现 Log In Codeium Free AI Code Completion Chat 2 pycharm bito 3 vscode bito 下载安装 注册登
  • 十六进制加法

    十六进制加法逢16进1位 注意 进位的那个位是 和 16 举例 0x21 0x3F 60 而不是 0x21 0x3F 6F
  • Proguard混淆工具使用方法图文说明

    Proguard的理论知识请看这篇文章 http www cnblogs com cr330326 p 5534915 html 1 下载Proguard 官网地址 http proguard sourceforge net 不墙很难打开