>>分享Java编程技术,对《Java面向对象编程》等书籍提供技术支持 书籍支持  卫琴直播  品书摘要  在线测试  资源下载  联系我们
发表一个新主题 开启一个新投票 回复文章 您是本文章第 22241 个阅读者 刷新本主题
 * 贴子主题:  java防止反编译之proguard混淆代码 回复文章 点赞(0)  收藏  
作者:flybird    发表时间:2020-01-07 09:49:38     消息  查看  搜索  好友  邮件  复制  引用

  proguard5.3下载地址:
  1. 从eclipse中导出工程的jar包(这个就不详细说了)
  2. 安装proguard后打开bin目录下的proguardgui.bat启动proguard如下图所示:
    点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
  3. 点击Input/Output,设置输入输出的jar包,input就是原jar,output就是混淆后的jar。
     点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
   点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
5.点击Input/Output中的add,添加该工程用到的jar,包括jre,以及web-info下的lib中的所有jar包,这一步如果缺少了jar,可能混淆时会报错。(可以先将所需要的jar包copy到某个文件夹中)如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小


6.点击shrinking配置如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小
7.点击obfuscation配置如下图所示:

点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

8.点击optimization配置如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

9.点击information配置如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

10.点击Process一栏中的Save Configuration按钮保存pro格式的配置文件,如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

11.用文本编辑器打开刚刚保存的pro文件,对其进行修改。如下面的例子:

加入如下代码:

-keep public class com.cn.A{

*;

}

表示对A类以及类的所有属性、方法进行保留

-keep public class com.cn.B{

public String name;

public static void methoadA(int,int,java.lang.String);

public static void methoadB(int,int,java.lang.String);

}

表示对OutputFrecast的name属性、instantDay和instantMonth方法进行保留

还有很多规则,可以参考proguard使用文档。

12.关闭proguard窗口,重新打开

13.点击Proguard一栏中的load configuration按钮,找到10中保存的pro文件
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小

14.点击process一栏中的process按钮进行混淆,成功后如下图所示:
点击在新窗口中浏览原图
CTRL+鼠标滚轮放大或缩小


----------------------------
原文链接:https://blog.51cto.com/wuxiaozhu/1934239



[这个贴子最后由 flybird 在 2020-01-07 20:49:12 重新编辑]
  Java面向对象编程-->多线程(上)
  JavaWeb开发-->在Web应用中访问Web服务
  JSP与Hibernate开发-->映射一对多关联关系
  Java网络编程-->基于MVC和RMI的分布式应用
  精通Spring-->组合(Composition)API
  Vue3开发-->Vue组件开发高级技术
  [求助] 如何观看孙老师的课程视频
  详细介绍float和double类型的区别
  BIO模型的缺陷
  Java并发编程的总结与思考
  Java虚拟机(JVM)参数配置说明
  Eclipse和MyEclipse的区别
  编程语言搜索量排行:用十年数据告诉你什么最受欢迎
  Synchronized与ReentrantLock区别总结
  volatile 与 synchronized 详解
  Eclipse使用指南:Debug 配置
  java 支持分词的高性能拼音转换工具,速度是 pinyin4j 的两倍
  Java入门实用代码:查看线程是否存活
  Java入门实用代码:使用 Enumeration 遍历 HashTable
  Java入门实用代码:链表元素查找
  中国有多少程序员?现在还值得学java吗?
  更多...
 IPIP: 已设置保密
树形列表:   
1页 0条记录 当前第1
发表一个新主题 开启一个新投票 回复文章


中文版权所有: JavaThinker技术网站 Copyright 2016-2026 沪ICP备16029593号-2
荟萃Java程序员智慧的结晶,分享交流Java前沿技术。  联系我们
如有技术文章涉及侵权,请与本站管理员联系。