前言:为了保护我们的劳动成果,我们来学习java混淆代码工具的使用。

1.下载retroguard.jar

进入http://www.retrologic.com/retroguard-download.html网址下载retroguard.jar文件,这里博文下面附2.3.1版本的retroguard.jar.

2.开始执行前的配置

2.1配置CLASSPATH





在系统变量中新建CLASSPATH,变量值为retroguard .jar的文件所在位置

3.RetroGuard的混淆配置规则



(1)所有 public 的类名、方法名、变量名应该全部保留。因为所有设置为 public 的内容代表了整个包对外表现的接口。若某个内容不想为外界访问,就不应该设置为 public 的。

(2)若包中某个类使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某个方法加载了一个类,若这个类在包外,不需要特别处理;若这个类在包内,则需要保留这个类的类名,否则混淆后会找不到这个类。

(3)在包中的所有调试信息(源文件名、行号、变量/参数信息等等)应全部删除。

(4)需混淆的包必须在 retroguard.jar的同一目录下,这样才可以保证生成的script.rgs混淆配置文件在retroguard.jar的同一目录下

4.RetroGuard的混淆配置

(1)把需要混淆的包放入解压的RetroGuard文件夹中





(2)双击防反配置.bat弹出可视化配置界面







(3)点击Browse添加需要混淆的包







(4)开始混淆







(5)保存接口和类









注:设置保留时需进入每一个包里面进行保留。



(6)保留字段和方法





(7)保存源文件名、行号、变量/参数信息(全不选)



(8)点击finish生成script.rgs配置信息文件

5.执行配置

(1)进入命令行到retroguard .jar的文件所在位置:

(2)java  RetroGuard [INPUT-JAR [OUTPUT-JAR [SCRIPT [LOGFILE]]]]命令。

示例:Java  RetroGuard zsearch.1.0.jar out.jar script.rgs out.log





(3)执行完毕

查看生成的out.jar、out.log文件,进行反编译检查没有保留的类是否成功混淆,保留配置的类是否没被混淆。

6.执行文件说明





7.好的写完了,下面附文档和混淆编译包

java混淆代码的使用的更多相关文章

  1. Android混淆代码

    Android代码混淆是必须的,java层代码如果不做混淆等于把源代码送人了.那如何做混淆呢? 之前一般都是提到采用proguard.cfg,但使用新版本ADT后没有这个文件了,取而代之的是progu ...

  2. 利用android proguard混淆代码

    利用android proguard混淆代码 2014-02-05 17:50 1207人阅读 评论(1) 收藏 举报 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上 ...

  3. 【转】Android 混淆代码总结

    http://blog.csdn.net/lovexjyong/article/details/24652085 为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的 ...

  4. Android 混淆代码总结

    为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被反编译,下面来总结以下混淆代码的步骤: 1. 大家也许都注意到新建一个工程会看到项目下边有这样proguard-project.txt一个文件,这 ...

  5. proguard-project.txt和project.properties混淆代码

     [转]利用android proguard混淆代码 防止反编译,优化代码 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上的开源demo,终于成功的配置了androi ...

  6. Android 混淆代码汇总

    为了防止别人对自己被盗的劳动,混淆代码可以被反编译可以有效地防止,以下在下面的代码混乱总结的步骤: 1. 大家可能已经注意到一个新的项目将在下面看到的物品都有这个proguard-project.tx ...

  7. 逆向进阶,利用 AST 技术还原 JavaScript 混淆代码

    什么是 AST AST(Abstract Syntax Tree),中文抽象语法树,简称语法树(Syntax Tree),是源代码的抽象语法结构的树状表现形式,树上的每个节点都表示源代码中的一种结构. ...

  8. pagebean pagetag java 后台代码实现分页 demo 前台标签分页 后台java分页

    java 后台代码实现分页 demo 实力 自己写的 标签分页 package com.cszoc.sockstore.util; import java.util.HashMap;import ja ...

  9. 使用Dotfuscator 进行.Net代码混淆 代码加密的方法

    混淆代码能在一定程度上放置代码被盗用,保护我们的知识产权 1.打开vs2012,选择工具-〉Dotfuscator Software Services 2.选择你需要混淆的DLL 文件,可以多选择 3 ...

随机推荐

  1. MyBatis入门程序(1)

    一.入门程序: 1.mybatis的配置文件SqlMapConfig.xml 配置mybatis的运行环境,数据源.事务等. <?xml version="1.0" enco ...

  2. Python使用SMTP发送邮件(163,yeah等网易邮箱已测试可以)

    #! /usr/bin/env python# -*- coding: UTF-8 -*-import smtplibfrom email.mime.text import MIMETextmailt ...

  3. Linux下 MYSQL 主从复制、同步

    mysql从3.23.15版本以后提供数据库复制功能.利用该功能可以实现两个数据库同步,主从模式(A->B),互相备份模式(A<=>B)的功能. 主从模式(A->B)的配置过程 ...

  4. YII2中分页组件的使用

    当数据过多,无法一页显示时,我们经常会用到分页组件,YII2中已经帮我们封装好了分页组件. 首先我们创建操作数据表的AR模型: <?php namespace app\models; use y ...

  5. avalon 如何隐藏首屏加载页面时出现的花括号

    页面添加样式 .ms-controller{ visibility: hidden } 使用在ms-controller, ms-important的元素上加上这个ms-controller类名 &l ...

  6. 函数的有用信息,装饰器 day12

    一 函数的有用信息 本函数的功能:绘图功能,实时接收数据并绘图.:return: 绘图需要的数据,返回给前端某标签 def f1(): ''' 本函数的功能:绘图功能,实时接收数据并绘图. :retu ...

  7. Linux操作系统-系统安装与分区

    .磁盘分区 使用分区工具在磁盘上划分几个逻辑部分,一旦分成几个分区,不同类型的目录和文件可以存储进不同的分区2.分区类型主分区:最多只能有4个扩展分区:最多只能有1个:主分区加扩展分区最多有4个:扩展 ...

  8. C#百度图片识别API调用返回数据包解析

    百度图片识别api接口 public static JObject GeneralBasic(string apikey,string secretkey,string path) { var cli ...

  9. Android Studio 发布 APK

    打开发布设置窗口 打开Generate Signed APK...窗口,点击Create new... 打开Create New...窗口,创建一个Key,这个Key的相关信息一定要好好保存,因为以后 ...

  10. Hyperscan与Snort的集成方案

    概况 Hyperscan作为一款高性能的正则表达式匹配库,非常适用于部署在诸如DPI/IPS/IDS/NGFW等网络解决方案中.Snort (https://www.snort.org) 是目前应用最 ...