当前位置:编程学习 > JAVA >>

关于java代码混淆的请教

大家都知道java容易被反编译,代码混淆只是把一些常量,变量名,方法名之类的给改掉,那么反编译之后的代码,就比较苦涩难看了,影响阅读。

对的,我就是要这种状态,但是本人不才,遇到了点问题,想请教各方大神,集思广益,看看如何解决。

我也知道做伸手党不好,所以我在提问之前,我先把我用的混淆器,怎么用给大家说一下吧。
也欢迎大家介绍其他好用的给我哈~

我用的是Retroguard
1、下载一个retroguard.jar ,假设下载之后,放在 d:\test\retroguard.jar
2、配置下环境变量,在classpath 后面加上 d:\test\retroguard.jar
3、把你做好的工程,打包成jar文件,放到到 d:\test\ 目录下
4、cmd命令,去到 d:\test\ 目录下
   java RGgui
   然后会出现一个界面,选中 你的项目xx.jar ,然后看说明下一步下一步的,选择一些配置
   最后生成一个scrip.rgs的配置脚本
5、java RetroGuard xx.jar xx2.jar script.rgs
6、然后就可以看到d:\test\ 目录下有一个xx2.jar的文件了,用反编译工具看,里面的代码确实苦涩难看了很多

嗯,大概过程就是这样了。

现在是问题所在......

1、如果没有外部引用包,那么以上的步骤就可以胜任我想要的问题了。
2、但是,一般工程来说,会用到很多其他的包,就比如说吧,我用了mina2的包
3、但是我在导出xx.jar的工程项目包的时候,项目要求,是没有包含mina2.jar(请允许我这样缩写)的包的..
4、所以用上面的步骤的话,会出现RetroGuard error: java.lang.ClassNotFoundException: org.apache.commons.httpclient.protocol.ProtocolSocketFactory这种找不到class的引用的报错。

请问有什么办法可以解决吗?
本人不才,恳请各位xdjm热心帮助看看....
java 混淆 Retroguard 反编译 --------------------编程问答-------------------- 学习一下。。。 --------------------编程问答-------------------- 将有关的jar全部解压到你的工程中 --------------------编程问答-------------------- @2楼:
还是不行呢...

我换了proguard来进行混淆,但是还是类似的问题,
有木有童鞋,教导一下,如何使用proguard吗?
网上的额都试过了,还是出现类似的问题.. --------------------编程问答-------------------- 你这是外部包没找到。
16部告诉你怎么设置了:16,如果在处理过程中有问题,一般会有提示,大部分一般都是缺少关联类,如果少了相关类,在第7步的图,把缺少的支持包加进来就可以了。

http://java-server.iteye.com/blog/1166114
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,