网站首页 > 文章中心 > 其它

java混淆代码怎么做

作者:小编 更新时间:2023-09-24 08:22:01 浏览量:110人看过

proguard怎么混淆springmvc框架的java类

ava代码很容易被反编译,以下使用proguard来保护我们的代码

proguard选项很多,容易迷糊,现在就把我的配置写下来(实际使用中),以供参考

java混淆代码怎么做-图1

如图1

注意输出的jar包,要自己手工填写.

至些图形化的设置部分已经完成.

-injars test.jar

-outjars test_out.jar

-libraryjars lib\ant.jar

-libraryjars lib\aopalliance-1.0.jar

.....设置的支持库包,略

-dontskipnonpubliclibraryclassmembers

java混淆代码怎么做-图2

-dontshrink

-useuniqueclassmembernames

-keeppackagenames

-keepattributes Exceptions,InnerClasses,Signature,Deprecated,SourceFile,LineNumberTable,LocalVariable*Table,*Annotation*,Synthetic,EnclosingMethod

-keepparameternames

-ignorewarnings

....我们今天这一节加入要保持的类和方法,写法如下,红色部分是我们加的

-keep class org.bl.soa.components.constant.* {

public fields;

public methods;

*** set*(***);

*** get*();

}

-keep class org.bl.hibernate.* {

.....继续加其他的要保留的类和方法,有多少写多少.我是把test.jar里的所有类都加进来.

java混淆代码怎么做-图3

....后面还一些自动生成的配置,不用管它们.

....略

重新打开progrard,执行 bin目录下的proguardgui.bat.

如下图

附上出处链接:

java 代码混淆 用什么命令

Enable Jocky多选框选中

Jocky build file是在项目创建一个xml文件,根据里面的配置进行混淆

Scramble level是进行混淆的代码等级,有none、private、package、protected、public、all,将根据设置对java文件中的相应修饰符修饰的方法代码进行混淆

Output directory是输出文件夹,在项目根目录下

src path="src"/ 设定源文件的目录,因为有时候我们只想输出src目录下的部分包而不是全部.

javaweb项目做混淆的详细步骤

混淆的工具很多,最常用的为retroguard.

Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.反编译工具有很多种,其中非常强大的一种是 jad.

为了避免出现这种情况,保护开发者的劳动,又有一种叫做 Java 混淆器的工具被开发出来.Java 混淆器的作用是对编译好的代码进行混淆,使得其无法被反编译或者反编译后的代码混乱难懂.Java 混淆器也有很多种,其中比较强大的一种是 RetroGuard(只说比较强大是因为我对其功效还是有些怀疑的).

这里我介绍一下 RetroGuard 的使用方法.

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.

在生成配置文件时需要注意的是:

①.、所有 public 的类名、方法名、变量名应该全部保留.因为所有设置为 public 的内容代表了整个包对外表现的接口.若某个内容不想为外界访问,就不应该设置为 public 的.

以上就是土嘎嘎小编为大家整理的java混淆代码怎么做相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章