为了避免出现这种情况,保护开发者的劳动,又有一种叫做 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实现 java代码混淆,防止反编译】代码混淆Java实现的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java代码混淆,防止反编译、代码混淆Java实现的信息别忘了在本站进行查找喔 。
推荐阅读
- 汤姆猫益智游戏如何下载,下载汤姆猫怎么玩
- dos系统u盘怎么装win7系统,怎么把系统装在u盘
- phpcms加密规则,php加密平台源码
- php数据库连接静态 php数据库
- flutter的底部导航,flutter底部导航栏切换
- 二手750ti显卡怎么样,2手750显卡
- 古风游戏推荐经营,好玩的古风经营游戏
- vb.net程序打包 vb 打包
- 包含gis个人实习报告格式的词条