java反编译和混淆

 

Java程序运行时是动态连接的,因此编译成的目标文件中包含有符号表, 使得Java程序很容易被反编译。我常用的工具有:cavaj,JAD,jd-gui.exe。比较好用的是jd-gui.exe。他是可视化的界面,可以加载一个jar包,查看他的package结构以及反编译出来的class文件,还可以一键倒出所有的class文件到java src文件。

 java反编译和混淆_第1张图片

 

 混淆器可以打乱class文件中的符号信息,使反向工程变得非常困难。

常用的工具有:jocky,proguard还有retroguard。下边介绍一下proguard:

在输入输出页中设定要混淆的jar和要输出到目的的jar文件

java反编译和混淆_第2张图片

 

 

 

 在其他选项页中设定是否混淆类名等属性。

 然后在处理页中直接点击执行

 

 

 java反编译和混淆_第3张图片

 

 必要时去掉一些警告。

 

 

 

 java反编译和混淆_第4张图片

 

 经过混淆后的jar文件再用jd-gui.exe打开,发现包,类名,方法名等变得难以阅读。

并且包也变得小了。比如我用了一个4.8M的jar经过压缩和混淆后变得不足3M。

 

如有问题可以和我联系。

 

 

你可能感兴趣的:(java)