`
gaojingsong
  • 浏览: 1210332 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

【Java混淆器】

阅读更多

前有许多Java反编译工具可以把(*.class)文件反编译出(*.java)文件.如果你花大量时间开发一个Java软件,而别人只 需利用Java反编译工具进行反编译,就可以既轻松又清楚的看见你的源代码.如果你不想把你的代码公开,又害怕被别人反编译,请使用我们开发的《Java混淆器》.使用我们的《Java混淆器》,只需要选定目录后轻轻点一下执行按钮,就可以 自动加密源代码.你只需再把加密后的源码编译一下,生成(*.class)就可以了.就算使用Java反编译工具,反编译后的代码也是一些比较难懂的无规则的代码.

从事Java编程的人都知道,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD。因此,为保护我们的劳动 成果,尽可能给反编译人员制造障碍,我们可以使用Java Obfuscator(Java混淆器)保护Java的类文件。

java Obfuscator的原理就是将字节码转换为一个逻辑上的对等物,这种转换后的版本极难拆散。即使有人试图去反编译,过程将极其艰难复杂,并很难绕过转换后模糊晦涩的编码。主要的过程如下:

用一个常规编译器(比如JDK)编译Java源代码运行混淆器,在受保护的环境下生成编译类文件。最后生成的会是一个不同的输出文档,也许扩展名也会不同。

这个被重命名为.class file的文件在功能上与原字节码是对等的,由于虚拟机仍然可以对其进行解译,因此对性能不会产生影响。

以下是一些可用来混淆(obfuscate)Java字节码的工具:

Zelix KlassMaster

Zelix KlassMaster是一款用Java写的实用工具,能读取和修改Java类文件,可以运行在任何支持1.1.6版Java虚拟机的平台上。

下载:http://www.zdnetindia.com/downloads/info/898255.html

Cinnabar Canner

Canner通过创建一个原生Windows可执行文件(EXE文件)保护你的代码不被逆向工程反编译,这个可执行文件包含了你的应用程序类和资源的全部加密版本,只有在被JVM调用到内存中时才处于非加密状态。

网站:http://www.cinnabarsystems.com/canner.html

下载:http://www.cinnabarsystems.com/download.html

Jmangle Java类粉碎机

Jmangle是用来阻止反编译Java程序,降低盗版的软件,开发者可用其粉碎类文件中的符号。

网站:http://www.elegant-software.com/software/jmangle/

下载:http://www.elegant-software.com/software/jmangle/download.html

RetroGuard

JavaGuard是一款通用的字节码混淆器,用来无缝融入你的日常构建和测试过程中,使得你辛苦编写宝贵的Java代码更加安全。

网站:http://java-source.net/open-source/obfuscators/javaguard

JODE

JODE是一款含Java解码器和优化器的java包。

网站:http://java-source.net/open-source/obfuscators/jode

最后要说的是,你也可使用其他几款类似的实用工具,这些工具运用许多不同的方法达到了相同的目标。他们也有共同之处,就是允许通过不同的过程转换生成.exe文件,将.class和.jar文件模糊化。Google Directory上有一张它们的综合列表:

http://directory.google.com/Top/Computers/Programming/Languages/Java/Developmen

 

 

 

1.1 什么是Jocky?

我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接。 这样,编译后的类文件中将包含有符号表,从而使得Java程序很容易被反编译。相信每一个Java开发人员,都曾经用过诸如Jad之类的反编译器,对Java的class 文件进行反编译,从而观察程序的结构与实现细节。如此一来,对于那些需要严格进行知识产权保护的Java应用,如何有效的保护客户的商业投资, 是开发人员经常需要面对的问题。     于是就出现了Java混淆编译器,它的作用是打乱class文件中的符号信息,从而使反向工程变得非常困难。     Jocky就是这样一款优秀的Java混淆编译器。

 

1.2 为什么需要Jocky?

目前业界有不少商业的甚或是开源的混淆编译器,但它们普遍存在一些这样或者那样的问题。一般而言,现有的混淆器都是对编译好的 class文件进行混淆,这样就需要编译和混淆两个步骤。而事实上,并不是所有的符号都需要混淆。如果你开发的是一个类库,或者某些类需要动态装载, 那些公共API(或者说:那些被publish出来的API)就必须保留符号不变,只有这样,别人才能使用你的类库。现有的混淆器提供了GUI或脚本的方式来对那些 需要保留的符号名称进行配置,但如果程序较大时,配置工作将变得很复杂,而程序一旦修改,配置工作又要重新进行。某些混淆器能够调整字节码的顺序, 使反编译更加困难,但笔者经历过混淆之后的程序运行出错的情况。     而Jocky与其它混淆编译器最大的不同之处在于:它是直接从源码上做文章,也就是说编译过程本身就是一个混淆过程。

 

1.3 Jocky是如何工作的?

Jocky混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆, 最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入符号保留指令来控制哪些符号需要保留,将混淆过程与开发过程 融合在一起,不需要单独的配置。

 

0
1
分享到:
评论

相关推荐

    java混淆器的作用

    ### Java混淆器的作用 在软件开发领域,尤其是Java编程中,源代码保护是一个非常重要的话题。随着技术的发展,软件知识产权的保护变得越来越复杂。对于开发者来说,编写好的代码往往包含了很多独创性的算法、业务...

    java 混淆器 与操作手册

    Java混淆器是开发Java应用程序时一个非常重要的工具,它的主要目的是保护代码安全,防止未经授权的逆向工程分析。本文将详细介绍Java混淆器的工作原理、重要性以及如何使用,特别是基于ProGuard 4.6版本的操作流程。...

    Java混淆器的设计与实现

    ### Java混淆器的设计与实现 #### 一、引言 随着计算机网络技术和分布式系统的迅速发展,Java语言凭借其良好的跨平台特性,在学术界和商业领域得到了广泛应用。Java程序的运行依赖于Java虚拟机(Java Virtual ...

    java混淆器 RetroGuard

    java混淆器 RetroGuard 免费提供源码 可运行jar文件 Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候。所以一个按照正常方式编译的 Java .class 文件...

    java混淆器

    Java混淆器是Java开发者在发布应用程序时经常使用的一种工具,主要目的是为了保护代码不被轻易逆向工程解析,增加代码的保密性和安全性。本篇文章将深入探讨Java混淆器的原理、作用以及如何使用ProGuard这款经典的...

    java混淆器jocky和retroguard-v2.3.1.zip

    Java混淆器,如Jocky和RetroGuard,是开发者用来增强代码安全性的工具,主要目的是防止Java类文件被轻易地反编译,从而保护软件的知识产权。在Android开发中,混淆尤其重要,因为Android应用的主要代码是用Java编写...

    java混淆器jocky

    java混淆器,能够对jar、private、public、protect等混淆,防止java的class文件被盗用

    jocky1.0.3 (原joc) java混淆器 去除jdk版本限制.rar

    Java混淆器是开发人员在发布Java应用程序时常常使用的工具,主要目的是为了保护代码不被轻易反编译和理解。Jocky1.0.3(原名JOC)是一款这样的混淆器,它提供了对Java代码的混淆功能,有助于增强代码的安全性。这个...

    Java混淆器

    Java混淆器 窗口界面 带中文帮助文档 运行: 命令行:JDK路径/bin/java -Xmx384m -jar Encrypt.jar 说明:如果被加密的文件需要第三方插件(*.jar),请把(*.jar)文件Copy到JDK路径\jre\lib\ext\目录下

    Java混淆器Allatori-7.5@集成eclipse编译

    对外接口联调保护你的Java源码-Java混淆器Allatori-7.5@集成eclipse编译 Obfuscation with Setting Classpath Single Jar Packaging Introduction to Watermarks Using Stack Trace Utility Integration with Apache...

    Java源代码混淆器

    敏创Java混淆器是广州市敏创信息科技有限公司在保护自己的Java源代码过程中积累的一套实用工具,可以有效地对Java代码进行混淆,达到保护自己知识产权的目的。 工具可以去除空格,回车,注释,有效地减小Java文件...

    混淆器(java)

    一个开源的java代码混淆器!

    java混淆器 Allatori-3.2

    Jocky:在生成class文件的过程中(即编译过程),通过修改编译器的代码生成过程,对编译器生成的中间代码进行混淆,...本人发布的这个混淆器,只需要在 Allatori-3.2-Demo\tutorial\step1目录下修改相应的配置文件即可

    java代码混淆工具(Allatori)

    Allatori 是第二代 Java 混淆器,可为您的知识产权提供全方位的保护。 尽管大多数第二代混淆器都提供了值得保护的级别,但我们已经在Allatori中开发了许多附加功能,以使对代码进行逆向工程几乎不可能。 Allatori ...

    Java 混淆器(GUI).zip

    混淆器 如果您对更强大的混淆方法感兴趣,请随意看看我的新项目masxinlingvonta,它通过将 Java 字节码编译为本机代码来进一步混淆它。Java 字节码混淆器支持流程混淆删除行号数字混淆[不稳定] 使用自定义字典进行...

Global site tag (gtag.js) - Google Analytics