`
java-boy
  • 浏览: 248350 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

使用Proguard扰乱器保护Java代码

    博客分类:
  • Java
阅读更多

      Java代码的安全性一直都是问题,JVM机制导致,Java很容易被反编译。使对方很容易得到你的原程序,即使反编译后有一点区别,但基本不会影响对方获取你的代码,和构思。

 

     最近做项目,程序需要部署到对方服务器,但公司不希望核心代码外泄。但程序又是Java编写的,所以想到了,代码扰乱器,免费的Java扰乱器不是很多。最后找到了proguard,试用了一下,发现还不错。现在简单介绍一下。

 

     proguard现在是sourceforge的项目,官方首页是http://proguard.sourceforge.net/ ,上面有详尽的使用说明。

 

     proguard会将包名,类名,参数名称全部改写,如将Server.java改成A.java。将变量名称等全部改写成没有意义的名称。这样即使反编译后,对方也不能很轻松的获得你的源码,想在上面继续开发基本不太可能,除非话足够长的时间,在无意义的程序上看懂,并将名称全部命名回来。这样话的时间,绝对不会比重写简单。

 

     除非你的程序重要到了,必须花大精力破译的地步,不会有人愿意干这种事情。如果是到了那种地步,即使是汇编,也有人可以反编译出来。

 

     以下简单记录以下使用过程:

          1.直接使用proguard,需要写一个简单配置文件命名为proguard.pro ,如下方所示:

 

-injars       xxx.jar
-outjars      xxx_out.jar
-libraryjars  /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:
/Users/xxx/xxxxx/xxxx/lib

-optimizationpasses 3
-overloadaggressively
-repackageclasses ''
-allowaccessmodification

-keep public class xxx.xxxx.xx.Server {
    public static void main(java.lang.String[]);
}

 -injars 是需要扰乱的jar包

 -outjars 是输出的jar包

 -libraryjars 指向程序所引用的jar包,其中需要引用JDK的rt.jar(笔者引用的是MacOS上的rt.jar),可以引用目录,中间用“:”分开。

 -keep 是声明Main类,避免该类被重命名。

 

   写完上面的配置文件就可以直接运行

java -jar proguard.jar @proguard.pro

 

    等一回,完成所有操作。就生成了扰乱后的jar包

 

    2.除了直接运行java方式,可以使用ant方式运行proguard, 这样运行起来就比较方便了。

 

<target name="proguard" depends="jar">
<taskdef resource="proguard/ant/task.properties"  classpath="/Users/xxx/tools/proguard/lib/proguard.jar" />
<proguard>
-injars       xxx.jar
-outjars      xxx_out.jar
-libraryjars  /System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Classes/classes.jar:
/Users/xxx/xxxxx/xxxx/lib

-optimizationpasses 3
-overloadaggressively
-repackageclasses ''
-allowaccessmodification

-keep public class xxx.xxxx.xx.Server {
    public static void main(java.lang.String[]);
}
</proguard>
</target>

将proguard声明为ANT的一个Task,这样直接调用proguard任务,就会生成需要的扰乱后的jar。

 

后记:支持ANT使得Proguard易用性大大提高。根据笔者目前找到的扰乱工具,Proguard应该是最好的免费扰乱工具。

 

 

 

分享到:
评论

相关推荐

    ProGuard工具包,Java代码混淆

    **ProGuard工具包详解——Java代码混淆** 在Java开发中,为了提高应用程序的安全性和保护知识产权,开发者常常会使用一种称为“代码混淆”的技术。ProGuard是Android和Java平台上的一个强大的开源工具,它能实现...

    ProGuard4.8使用proguard来保护我们的代码

    **ProGuard 4.8** 是一款强大的Java代码混淆、优化和压缩工具,它能够显著增强应用程序的安全性,防止未经授权的访问和逆向工程。在Java和Android开发中,ProGuard是一个常用的安全措施,用于保护代码不被轻易反编译...

    一步步教你使用Proguard混淆Java源代码 .docx

    使用 Proguard 混淆 Java 源代码可以保护我们的代码免受反编译和逆向工程的攻击,但需要注意的是,Proguard 只是保护代码的一种方式,并不是万能的,仍需要结合其他安全措施来保护代码。 在使用 Proguard 混淆 Java...

    java代码混淆工具proguard及教程讲解

    java代码混淆工具 简单使用docx 字典文件 生成的配置示例

    java代码混淆器proGuard

    Java代码混淆器ProGuard是Java开发中用于保护和优化应用程序的重要工具。它的主要功能是对Java字节码进行混淆,使得代码难以被逆向工程解析,从而提高代码的安全性。混淆过程中,函数变量、类和方法名会被重命名为...

    springboot工程(单个maven工程)利用proguard实现代码混淆 java demo案例

    Spring Boot作为Java领域广泛使用的微服务框架,其工程结构通常包含敏感信息和业务逻辑,因此,对代码进行混淆处理可以有效防止逆向工程攻击,同时也能优化应用的运行效率。ProGuard是一款强大的Java类文件混淆、...

    java 代码混淆 proguard

    ProGuard是一款广泛使用的Java代码混淆工具,它能有效地压缩、优化和混淆Java字节码,使其难以阅读和理解。 ProGuard的主要功能包括: 1. **压缩**:删除未使用的类、字段和方法,减小最终的APK或JAR文件大小,...

    Java防编译技术---proguard混淆器

    Java防编译技术是开发过程中保护源代码安全性和技术保密性的重要手段,而ProGuard混淆器正是其中的关键工具。ProGuard是一款开源的Java字节码混淆、优化、压缩和预校验工具,它能帮助开发者有效地减少应用的体积,...

    proguard(java代码混淆器)v5.3.3官方版

    proguard是一个java代码混淆工具,并提供了图形化用户界面,它也可以结合Ant或J2ME Wireless Toolkit使用。通过ProGuard得到的更精简的jar文件意味着只需要更小的存储空间混淆环节会用无意义的短变量去重命名类、...

    使用Proguard混淆Java源代码

    java代码很容易被反编译,可通过混淆技术来保护源码,此处我们应用开源项目proguard来进行混淆。操作使用详见:http://blog.csdn.net/odian1/article/details/8282799

    SpringBoot + proguard+maven多模块实现代码混淆

    使用 proguard 混淆代码只能增加阅读和理解的难度, 并不能百分百保证代码安全。常用的应用场景是项目需要部署到客户机器上,一定程度上防止代码泄露。 springboot多maven工程结构:proguard-root 是顶级父工程,...

    ProGuard-java混淆加密

    ProGuard能够对Java类中的代码进行压缩(Shrink),优化(Optimize),混淆(Obfuscate),预检(Preveirfy)。  1. 压缩(Shrink):在压缩处理这一步中,用于检测和删除没有使用的类,字段,方法和属性。  2. 优化...

    proguard.zip java代码混淆利器

    ProGuard是最受欢迎的Java字节码优化器。它使您的Java和Android应用程序缩小了90%,速度提高了20%。ProGuard还通过模糊类,字段和方法的名称来提供对逆向工程的最小保护。 ProGuard可以免费使用,以处理您的应用...

    实现maven管理的Javaweb项目的proguard代码混淆功能

    总的来说,通过Maven和ProGuard的结合,我们可以有效地保护Java Web项目的源代码,同时优化其体积和运行效率。在实际操作中,不断调整和完善ProGuard配置,根据项目的特性和需求进行微调,是确保混淆效果的关键。...

    Proguard混淆Android/Java源代码

    ProGuard是一个广泛使用的Java类文件压缩、优化和混淆工具,能够减少生成的类文件大小,并对字节码进行混淆,提高应用的安全性。它通过移除无用的类、字段、方法和属性,优化字节码,将类名、方法名和变量名等转换为...

    Java代码混淆工具(proguard4.5.1)

    Java代码混淆工具ProGuard是Java开发中用于保护和优化应用程序的重要工具。它的主要功能是对Java字节码进行混淆、优化、缩小和预校验,从而提高应用的安全性和性能。ProGuard 4.5.1是该工具的一个版本,发布于2010年...

    最好用的JAVA代码混淆工具proguard-7.0.0.zip

    Java代码混淆工具ProGuard是Java开发者在发布应用时常常使用的一种工具,它的主要目的是保护代码知识产权,防止未经授权的反编译和抄袭。在本压缩包文件"proguard-7.0.0.zip"中,包含了ProGuard的最新版本7.0.0,这...

    ProGuard_java_proguard_

    **ProGuard:Java代码混淆与优化工具** ProGuard 是一个强大的免费开源工具,主要用于Java程序的优化、混淆、预校验以及资源收缩。这个工具在软件发布时尤其有用,可以提高代码的安全性和难以逆向工程的程度,同时...

    Android Java代码混淆工具:ProGuard简介及使用.docx

    在Android开发中,ProGuard是最广泛使用的Java代码混淆工具之一,它不仅能够混淆代码,还能够对代码进行优化,减少APK的大小,提高运行效率。 #### ProGuard的工作原理 ProGuard通过对类、方法和字段的名称进行...

    proguard7.3.0

    总的来说,ProGuard 7.3.0是一款必备的工具,它不仅能够帮助开发者优化和压缩Java代码,还提供了高级的混淆功能,以保护代码免受逆向工程的威胁。在进行项目开发时,熟练掌握ProGuard的使用,将对提升软件质量与安全...

Global site tag (gtag.js) - Google Analytics