`
a14
  • 浏览: 12076 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Jocky代码混淆器是使用小心得

 
阅读更多

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

使用步骤:
1、下载jocky.jar和jocky-ant.jar,并加到工程的WEB-INF/lib目录下。

2、在工程下编写ant的脚本文件,主要是加上
<!--引入jocky任务-->
<path id="kocky.lib">
<pathelement location="${web.inf}/lib/jocky.jar"/>
<pathelement location="${web.inf}/lib/jocky_ant.jar"/>
</path>
<taskdef resource="jockytasks" classpathref="kocky.lib" > </taskdef>
在执行javac任务之前加上

<jocky jar="${web.inf}/lib/jocky.jar" enable="true" level="protected"> </jocky>

例如:
<target name="compile" depends="copy.spring_test" description="compile the source">
<jocky jar="${web.inf}/lib/jocky.jar" enable="true" level="protected"> </jocky>
<javac srcdir="${src}" destdir="${web.inf}/classes" fork="true" memorymaximumsize="500M" source="1.5" target="1.5" debug="true" >
<classpath refid="project.class.path" />
</javac>
</target>
Level的取值情况说明:
none 不进行混淆;
private 对所有private访问级别的元素进行混淆;
package 对所有private或package private元素进行混淆;
protected 对所有private, package private, protected元素进行混淆;
public 对所有的元素都进行混淆;
all 相当于public;
推荐使用protected以下的混淆级别,不要对public的进行混淆,否则容易出错,因为public 的东西与类外界交互多,易于出错。

3、使用ant运行编写的脚本,中间可能会出的错:
? 代码版本不对,将源代码工程的buildpath的jdk版本换成1.5,这东西只支持这个版本
? 工程的某个地方代码有错,有时是null,有时是classnotfound,等等,这是由于混淆后,一些类或者类中的东西变得不可识别了,这就是风险啊,找到出错的地方,出错代码的上方加上/**
* @preserve
*/
这种注释。表示这里不用混淆。
? 如果在myeclipse里直接运行脚本出错的话,就用控制台,cd到脚本所在的目录使用命令:
Ant -f <脚本文件名> 进行运行(前提是ant配置在系统path中)

4、经过运行ant脚本,那么系统中你所要进行混淆的代码就已经生成了混淆后的class文件,可以用反编译工具来看下,里面很多变量都换了莫名其妙的名字,目的达到,之后就是打包,发布了。

其实之前工作以来学了些东西,但是都是太懒,从来都没弄上来,以后勤快点,自己也要努力。

分享到:
评论

相关推荐

    jocky代码混淆工具

    先下载一个Jocky for eclipse的插件,然后放到eclipse的plugin文件夹里,然后右键单击项目,会看到Jocky的选项,Jocky与其它混淆编译器最大的不同之处在于:它是直接从源码上做文章,也就是说编译过程本身就是一个混淆...

    jocky-Java混淆编译插件以及配置

    正确使用和配置jocky,可以帮助开发者更好地保护自己的知识产权,降低代码被恶意利用的风险。在实践中,我们需要根据项目的需求和安全策略,灵活运用和调整jocky的各项功能,以达到最佳的混淆效果。

    代码混淆Eclipse插件Jocky

    Jocky支持与ProGuard(一个广泛使用的开源代码混淆工具)集成,这意味着它可以利用ProGuard的强大功能,同时保持Eclipse内的直观操作。 在实际使用中,`org.apusic.jocky`可能表示的是Jocky插件的组织或库文件,...

    jocky混淆器JDK1.7不会报错

    1. **代码混淆**:jocky混淆器通过对类名、方法名和变量名进行随机化,使反编译后的代码变得难以理解。 2. **控制流混淆**:通过修改控制流结构,使得代码逻辑难以还原,增加逆向工程的难度。 3. **资源加密**:对于...

    jocky(java代码混淆器)

    我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接。这样,编译后的类文件中将包含有符号表,从而... Jocky就是这样一款优秀的Java混淆编译器。

    很强大的java代码混淆工具 Jocky

    Jockey跟其他混淆工具不同的是:它是直接对编译过程做文章,也就是在把java文件编译为class文件的过程中对代码进行混淆,混淆后的代码中包含很多JVM 指令,大家知道JVM指令是面向机器的,人类一般很难看懂!...

    Java代码混淆教程之jocky篇.docx

    在这个教程中,我们将关注一个名为Jocky的编译级混淆器。Jocky设计用于整体编译混淆,它不适合分别编译各个模块,因为这样做可能会导致模块间的接口混淆,引发找不到类的错误。然而,通过使用`@preserve`注解,我们...

    java代码混淆--jocky

    NULL 博文链接:https://chenming47.iteye.com/blog/935294

    Jocky混淆JAVA代码(保护你的JAVA项目)[参照].pdf

    - **代码混淆**:Jocky的主要任务是混淆代码,使其难以反编译。通过重命名变量、方法和类,以及改变代码结构,使得反编译后的代码难以理解。例如,未混淆的代码中`SimpleBean`类及其成员变量、方法名在Jocky混淆后...

    Jocky混淆JAVA代码(保护你的JAVA项目).pdf

    Jocky是一款Java混淆编译器,它不同于其他混淆工具,它直接从源代码层面进行混淆,将混淆过程融入到编译过程中,避免了传统混淆器需要编译后再混淆的两步操作。这种方式使得对需要保留符号的处理更为简便,特别是在...

    Java混淆编译器-jocky_1.0.3

    混淆技术的主要目的是使代码变得难以理解,从而防止恶意用户逆向工程分析代码,窃取商业机密或进行非法利用。Jocky是一款流行的Java混淆工具,版本为1.0.3,它提供了对Eclipse 3.2的支持。 在给定的压缩包`org....

    java混淆jocky,不限jdk版本

    本篇文章将深入探讨Jocky在不同JDK版本中的兼容性问题、插件的配置与使用方法,以及代码混淆的基本概念。 首先,我们来关注"java混淆"这一主题。混淆是将源代码转换为难以阅读的形式,通过改变变量名、函数名、类名...

    Jocky混淆JAVA代码(保护你的JAVA项目)[收集].pdf

    Jocky是一款独具特色的代码混淆工具,它能够在源代码层面对Java代码进行混淆处理,而非如大多数混淆器一样,仅对编译后的class文件进行操作。这样的设计使得Jocky不仅能够在编译过程中直接完成混淆工作,简化了整个...

    eclipse混淆器jocky插件

    Eclipse混淆器插件Jocky是专门为Java开发者设计的一款工具,它主要用于增强代码的安全性,通过将源代码混淆,使原始的Java类和方法名变得难以理解和逆向工程。这款插件集成在Eclipse IDE中,使得混淆过程更加便捷,...

    Eclipse代码混淆插件通用JDK

    Jocky提供了对IDE Eclipse的支持,同时,也支持在Ant中使用(事实上,在Eclipse中,也是先生成一个ant文件,然后再编译). 是挺好用, 编译后的代码大部分反编译出来只有 JVM 指令! 的确是保护系统核心的利器! 支持 ...

    jocky 混淆编译 ant

    3. 设置Jocky的一些基本属性,包括jocky.jar包的位置,以及混淆编译级别: &lt;jocky jar="{lib.dir}/jocky.jar" enable="true" level="private" /&gt; 4. 当设置jocky的enable属性为true时,此时,Ant脚本中的javac编译...

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

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

    jocky 混淆编译器

    **Jocky 混淆编译器**是一款专门针对Java源代码的混淆工具,它的主要功能是在编译过程中对代码进行混淆处理,以增强代码的安全性,防止未经授权的反编译。在Java开发中,源代码通常会被编译成.class文件,这些二进制...

    Spring Boot + Allatori 代码混淆demo

    在Spring Boot项目中,我们通常会编写控制器、服务层、数据访问层等组件,为了防止这些代码被恶意分析,我们需要进行代码混淆。 其次,**代码混淆** 是一种安全措施,通过重命名类、方法和变量,以及改变控制流结构...

Global site tag (gtag.js) - Google Analytics