java代码混淆all java代码混淆原理

Java项目源码为什么要做代码混淆一般走代码混淆就是为了保护源代码,让别人不至于通过反编译轻易的获得源代码
java 代码混淆 用什么命令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目录下的部分包而不是全部 。
JAVA 有对源代码进行混淆的混淆器么不需要对源代码混淆 。class有这种功能java代码混淆all的java代码混淆all , 在J2ME中混淆是必须的,结果跟你说的一样,不过原理不是你那么走的,混淆以后的class反编译也会让人看不懂,全部变成了a,b,c,d这样的名字 。
求教Java web项目一般怎样做代码混淆或加密一、java web项目混淆
proguard4.8工具java代码混淆all,说是支持warjava代码混淆all的,可混淆过后少了classes目录了,自然成功不了 。网上搜的过程不详说了,最后找着--“J2EE-web工程ProGuard代码混淆07_28” , 网址:
根据提示一步步完成 。
把web项目打成jar包后用proguard进行混淆,然后把混淆过后的class目录替换发布包war中的对应目录,启动运行是正常的 。
主要注意利用proguard生成xxx.pro文件,然后手动加工-keep class WebRoot.WEB-INFO.lib.* 等项目中不需要混淆的包和类 。
二、java web项目打成.exe
没找到免费的,这搜到个收费的--Jinstall,试了下功能挺好,
可以加密、集成jdk、tomcat , 如果数据库是mysql也集成 , 其java代码混淆all他数据库的话要设置数据库的url.
javaweb项目做混淆的详细步骤混淆的工具很多,最常用的为retroguard.
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候 。所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译 。反编译工具有很多种,其中非常强大的一种是 jad 。
为了避免出现这种情况 , 保护开发者的劳动,又有一种叫做 Java 混淆器的工具被开发出来 。Java 混淆器的作用是对编译好的代码进行混淆 , 使得其无法被反编译或者反编译后的代码混乱难懂 。Java 混淆器也有很多种,其中比较强大的一种是 RetroGuard(只说比较强大是因为我对其功效还是有些怀疑的) 。
这里我介绍一下 RetroGuard 的使用方法 。
将下载的 .tar.gz 或者 .zip 文件解压 。有用的只有 retroguard.jar 一个文件,其它的是源代码和文档 。
RetroGuard 是针对 jar 文件做混淆的 。使用之前需要先配置一下 。可以手工编辑配置文件,更好的方法是使用 RetroGuard 提供的 GUI 工具来生成配置文件 。使用方法如下:
java -classpath retroguard.jar;xxx.jar;yyy.zip;... RGgui
然后在 GUI 的 Wizard 中设置各个参数 。上面的 -classpath 中应该列出要混淆的 jar 所依赖的所有的包 。
RGgui 的详细使用方法可以看 RetroGuard 的文档 docs.html 。
配置文件生成后 , 就可以运行 RetroGuard 进行混淆了 。使用方法如下:
java -classpath xxx.jar;yyy.zip;... RetroGuard vvv-unofb.jar vvv.jar vvv.rgs vvv.log
其中 vvv-unofb.jar 是未混淆的 jar 文件,vvv.jar 是混淆后生成的 jar 文件,vvv.rgs 是配置文件,vvv.log 是日志文件 。缺省的配置文件名称为 script.rgs,缺省的日志文件名称为 retroguard.log 。
在生成配置文件时需要注意的是:
1、所有 public 的类名、方法名、变量名应该全部保留 。因为所有设置为 public 的内容代表了整个包对外表现的接口 。若某个内容不想为外界访问,就不应该设置为 public 的 。
2、若包中某个类使用了 java.lang.Class 或者 java.lang.ClassLoader 中的某个方法加载了一个类,若这个类在包外,不需要特别处理;若这个类在包内 , 则需要保留这个类的类名 , 否则混淆后会找不到这个类 。
3、在包中的所有调试信息(源文件名、行号、变量/参数信息等等)应全部删除 。
【java代码混淆all java代码混淆原理】java代码混淆all的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java代码混淆原理、java代码混淆all的信息别忘了在本站进行查找喔 。

    推荐阅读