java防止反编译之proguard混淆代码

proguard5.3下载地址:http://down.51cto.com/data/2316123

  1. 从eclipse中导出工程的jar包(这个就不详细说了)
  2. 安装proguard后打开bin目录下的proguardgui.bat启动proguard如下图所示:

  3. 点击Input/Output,设置输入输出的jar包,input就是原jar,output就是混淆后的jar。

5.点击Input/Output中的add,添加该工程用到的jar,包括jre,以及web-info下的lib中的所有jar包,这一步如果缺少了jar,可能混淆时会报错。(可以先将所需要的jar包copy到某个文件夹中)如下图所示:

6.点击shrinking配置如下图所示:

7.点击obfuscation配置如下图所示:

8.点击optimization配置如下图所示:

9.点击information配置如下图所示:

10.点击Process一栏中的Save Configuration按钮保存pro格式的配置文件,如下图所示:

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文件

14.点击process一栏中的process按钮进行混淆,成功后如下图所示:

时间: 2024-10-02 02:35:02

java防止反编译之proguard混淆代码的相关文章

利用android proguard混淆代码

利用android proguard混淆代码 2014-02-05 17:50 1207人阅读 评论(1) 收藏 举报 网上虽然有很多相关博客,不过貌似都不是最新版的..于是百度+谷歌+github上的开源demo,终于成功的配置了android proguard. 最新版的android sdk的默认配置已经可以满足我们的大多数要求了,我们只需要按照sdk的提示就可以配置大部分的必须配置,然后再加上一些基本的 自定义配置就行了. 第一步,取消project.properties里面关于prog

使用.NET JustDecompile来反编译你的程序代码

前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL 档案. 首先大概介绍一下 DLL 是什么,DLL 全名是 Dynamic Linking Library (动态链接库),当你使用 .NET 开发应用程序时,使用的是网站项目或类别库时,当项目建置完成后即会在项目底下的 Bin 数据夹中产生将你所撰写项目中所有的 Class 档案编译成 DLL 档案

反编译工具 使用.NET JustDecompile来反编译你的程序代码

原文地址:http://www.it165.net/pro/html/201310/7383.html 前言 在项目的进行中有时会碰到需要去了解由第三方所开发的程序代码或者因为年久已经遗失原始码的程序,由于因为是别人写的所以我们并没有原始码可以直接阅读,碰到这种情况我们就需要去反编译这些程序及 DLL 档案. 首先大概介绍一下 DLL 是什么,DLL 全名是 Dynamic Linking Library (动态链接库),当你使用 .NET 开发应用程序时,使用的是网站项目或类别库时,当项目建置

Proguard混淆代码(1)

[意义]混淆代码,可以加大别人反编译的难度,从而最大化的保护自己的代码安全. [场景]我写了一个发短信的程序,回调给游戏一个发短信是否成功的参数,如果成功,游戏就给用户加道具.本意:只想暴露给游戏 doPay()接口,但不想让别人知道我内部的代码及发送短信的内容,所以我就要混淆我的代码,只保留doPay()接口不被混淆~ 工程目录结构: 1 分析: PaymentForSms.java  中,有 doPay方法 public static void doPay(Context context,S

java常见反编译工具

1.Java反编译插件 -- Jadclipse JadClipse是Jad的Eclipse插件,是一款非常实用而且方便地Java反编译插件,我们只需将下载的插件包复制到eclipse的plugins目录下,然后修改window -> Preferences -> Java -> JadClipse 下的Path to decompiler ,如:C:\pin\jadnt158\jad.exe,最后在Windows -> Perference -> General ->

在cmd上执行关于java的反编译

反编译是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析.研究”工作,以推导出他人的软件产品所使用的思路.原理.结构.算法.处理过程.运行方法等设计要素,某些特定情况下可能推导出源代码.反编译作为自己开发软件时的参考,或者直接用于自己的软件产品中.例如执行如下代码的反编译 1 public class stringbuffer { 2 public static void main(String[] args){ 3 StringBuffer s = new StringBuffer(

Java 批量反编译class文件,并保持目录结构

jad -o -r -d d:\src -s java C:\Users\spring\Desktop\egorder3.0\WEB-INF\classes\**\*.class -o - overwrite output files without confirmation (default: no) 无需确定覆写文件 -r - restore package directory structrure 恢复包目录结构 -s - output file extension (by default

Java代码的编译与反编译那些事儿

编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language).编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language). 机器语言(Machine Language)和汇编语言(Assembly Language)属于低级语言,直接用计算机指令编写程序. 而C.C++.Java.Python等属于高级语言,用语句(Statement)编写程序,语句是计算

android 反编译 混淆过程中注意事项

此文源自组内成员分享的PPT,其他成员的文档由于没有得到授权,暂不公开. 本文命令如果没有特殊注明,均为windows 7环境. 本文只涉及大概的知识点,不涉及具体的细节,需要注意. 反编译 apktool 可反编译资源文件(xml,点九图)以及代码为smali代码 使用命令:apktool d xxx.apk output_filepath dex2jar 反编译dex文件(解压apk获得的classes.dex)为jar 使用命令:dex2jar xxx.dex jd-gui 查看jar文件