Java代码混淆和加密--Jocky
原文地址为: Java代码混淆和加密--Jocky
1.1 什么是Jocky?
1.2 为什么需要Jocky?
目前业界有不少商业的甚或是开源的混淆编译器,但它们普遍存在一些这样或者那样的问题。一般而言,现有的混淆器都是对编译好的 class文件进行混淆,这样就需要编译和混淆两个步骤。而事实上,并不是所有的符号都需要混淆。如果你开发的是一个类库,或者某些类需要动态装载, 那些公共API(或者说:那些被publish出来的API)就必须保留符号不变,只有这样,别人才能使用你的类库。现有的混淆器提供了GUI或脚本的方式来对那些 需要保留的符号名称进行配置,但如果程序较大时,配置工作将变得很复杂,而程序一旦修改,配置工作又要重新进行。某些混淆器能够调整字节码的顺序, 使反编译更加困难,但笔者经历过混淆之后的程序运行出错的情况。 而Jocky与其它混淆编译器最大的不同之处在于:它是直接从源码上做文章,也就是说编译过程本身就是一个混淆过程。
1.3 Jocky是如何工作的?
Jocky混淆编译器是在Sun JDK中提供的Java编译器(javac)的基础上完成的,修改了其中的代码生成过程,对编译器生成的中间代码进行混淆, 最后再生成class文件,这样编译和混淆只需要一个步骤就可以完成。另外可以在源程序中插入符号保留指令来控制哪些符号需要保留,将混淆过程与开发过程 融合在一起,不需要单独的配置。
以上为摘抄
Jocky的下载和配置
OperaMasks上的下载链接已经失效,请移步CSDN自行搜索下载
1、下载完成后解压得到名为org.apusic.jocky_1.0.3的文件夹,把这个文件夹放到eclipse根目录的plugins文件夹下(myeclipse和eclipse同理)。
2、重启eclipse,右键一个工程文件,出现Jocky选项说明OK。
3、一般是先进行设置-Jocky Settings,然后进行Jocky Now!。以下是settings界面
Enable Jocky多选框选中
Jocky build file是在项目创建一个xml文件,根据里面的配置进行混淆
Scramble level是进行混淆的代码等级,有none、private、package、protected、public、all,将根据设置对java文件中的相应修饰符修饰的方法代码进行混淆
Target VM是java虚拟机的版本,有1.4和1.5,一般选择1.5
Output directory是输出文件夹,在项目根目录下
点击确认会自动根据项目的设置生成xml文件
4、jocky_build.xml,实际上是一个ant build文件,由系统自动生成,有几处需要说明
- <pathelement location="bin"/> <pathelement location="XXX.jar"/>这类标签代表项目编译所需的jar包,由于是自动生成一般不用理睬,如果出现找不到相关的package之类的报错,那么有可能是location路径有问题。如果你安装系统时是用户名设置成了中文名,并且使用了maven,maven的jar包的下载路径设置成了默认${user}/.m2/repository/,那么jocky这里的路径会出现问题,中文名的用户名会乱码或者消失,请修改maven配置xml文件修改下载路径<localRepository>[自己指定的路径]</localRepository> 。
- <javac destdir="${jocky.output.dir}/bin" target="${target}" encoding="UTF-8" > 代码中如果有中文名,必须手动设定编码,默认是没有的。
- <src path="src"/> 设定源文件的目录,因为有时候我们只想输出src目录下的部分包而不是全部。
5、最后Jocky Now!生成的.class文件要通过命令进行打包,下篇文章简单介绍。
转载请注明本文地址: Java代码混淆和加密--Jocky
Java代码混淆和加密--Jocky相关推荐
- java代码混淆加密_Java代码混淆和加密--Jocky(转)
1.1 什么是Jocky? 我们知道,Java是一种跨平台的编程语言,其源码(.java文件)被编译成与平台无关的字节码(.class文件),然后在运行期动态链接. 这样,编译后的类文件中将包含有符号 ...
- java代码混淆 项目加密解决方案 class文件加密 支持JDK16
通过 gui反编译代码效果如下: 核心代码,加密串 一览无余. 无法保证版权, 成果被随意盗用,下面这展示 ,通过 本工具加密后的效果 package come.tool.wari.util;impo ...
- java代码混淆器proguard使用大法3种
ProGuard注意事项 1.反射调用类或者方法,可能失败 2.对外接口的类和方法,不要混淆 3.嵌套类 4.native方法 5.枚举类 https://www.guardsquare.com/en ...
- Java培训分享5个常用Java代码混淆器
对于Java程序员来说,如果辛辛苦苦写的代码被人摽窃走,将是一件非常恼火的事情.如何保护自己的代码呢,可以通过逆向工程反编译得到Java程序的源代码,这种反编译工具之一就是JAD,尽可能给反编译人员制 ...
- 安卓逆向_18 --- APK保护策略【Java代码混淆、资源混淆、签名校验】
Java 代码混淆介绍:https://www.bilibili.com/video/BV1UE411A7rW?p=60 Android 反编译利器 jadx:GitHub上直接下载:https:// ...
- Java代码混淆工具ProGuard
目录 Java代码混淆工具ProGuard 简介 描述 作用的环境 功能 工作原理 下载 使用时注意事项 版本问题 JDK位数问题 Java的字节码验证问题 关于使用类似于Hibernate的对象关系 ...
- JAVA代码混淆器大全
JAVA代码混淆器大全 Author/Company Program Shrink. Optim. Obfusc. Preverif. License Eric Lafortune ProGuar ...
- Java代码:字符串加密与解密
Java代码:字符串加密与解密 获取字符串的长度length() 把字符串转为字节数组getBytes() 字节数组转换为字符串String(b) /* *java代码:字符串加密与解密 **/ pa ...
- Python 代码混淆和加密技术简述
Python 代码混淆和加密技术 1. 背景 Python进行商业开发时, 需要有一定的安全意识, 为了不被轻易的逆向还原. 混淆和加密就有所必要了. 2. 目前的混淆和加密方案 2.1 混淆 减少p ...
最新文章
- 使用VS2008怎么连接自带的SQL Server2005的Express版本数据库
- 数据库---T-SQL语句(一)
- Linux线程同步介绍和示例
- RTSP流媒体播放分析-转
- 多线程上下文切换优化与注意
- 在RedHat/CentOS下安装Docker(不升级内核)
- Redfish 验证工具: Redfish Service Validator (OData CSDL)
- python添加pip环境变量win7_windows环境下面配置pip环境变量
- -转载-我要我们在一起故事原著
- 会员积分商城系统的功能介绍
- Attach函数的讲解
- 深入理解Linux内核通知链(Notifier)
- EfficientNet网络详解
- C语言实现float类型到int类型的转化(位运算基础知识)
- 51nod 1113 矩阵快速幂 模板题
- MyEclipse 的注册码 破解步骤
- 王传宝老师--沪师经纪刘建
- 秉火429笔记之四启动文件分析
- Untiy3d动画脚本
- 金工如何运用计算机思维,金工实心得.doc
热门文章
- 第 3 章 基本数据类型
- wps在使用过程中突然崩溃了,怎么找回原来的文档
- 彩光价格一般是多少_彩光治疗价格是多少
- 听哈佛商学院教授讲:如何建立信任
- TinyPng图片压缩的正确打开方式
- 解决https://start.spring.io/连接不上的问题
- 已知有十六支男子足球队参加2008 北京奥运会。写一个程序,把这16 支球队随机分为4 个组。注:参赛球队列表见附录注2:使用Math.random 来产生随机数。(也可以使用其它方法)
- 深入理解java虚拟机 新生代_深入理解java虚拟机:笔记
- grubbs准则 matlab_莱因达 ( PauTa)准则、格拉布斯 ( Grubbs)准则、肖维纳Chauvenet 三者的区别...
- Promise异步编程