1.Jar包混淆工具简单使用
1、下载proguard
Proguard是一款开源免费的java类文件的压缩、优化、混淆器,它删除没用的类,字段,方法和属性,使字节码最大程度的优化,使用简短无意义的名字来重命名类和方法。
拷贝整个ProGuard包到windows,同时,使用前需要在windows平台提前配置jdk8环境。
2、准备jar包,此处举例为TestObfuscate.jar,java类和jar包如下
3、运行ProGuard bin目录下的proguardgui.bat
4、运行如图,点击左边的“input/output”菜单
5、点击右边的“add_input”加入我们要混淆的jar,TestObfuscate.jar;点击右边的“add_output”填入我们要输出的jar(名称随意),这里填写TestObfuscate_out.jar。注意,输出的jar路径和名字是自己手动填写的。
6、添加依赖库,如果是复杂项目,在当前页面的下半块点击add…一般来说要把整个javaproject的libraries里所有的jar都加进来,本文档仅仅是简单使用,不做添加。
7、完成后点击shrinking,设置成下图(可根据具体需要配置,我这里只是简单配置)
8、点击obsuscation,设置成下图(可根据具体需要配置,我这里只是简单配置)
9、点击optimization,设置如下图(可根据具体需要配置,我这里只是简单配置)
10、点击process,再点击save configutation,在弹出的对话框中,输入要保存的配置文件名称(我这里是test.pro),最后点击“保存”,如下图所示。
至此,图形化设置部分已经完成。
11、最后,添加要保留的类与方法
使用nodpad++编辑刚刚保存下来的test.pro
加入要保存的类和方法,选中的是我新加的
这里也支持正则表达式 如
-keep class src.test.*{} 表示保留src.test目录下所有类名。
写完后,保存。
12、重新打开proguardgui.bat,点击第一个选项“proguard”,再点击“Load configuration”,选择我们刚才保存的“test.pro进行加载”。
13、开始混淆代码,点击process,再点击process!
14、等待处理完成后,输出的TestObfuscate_out.jar就是混淆后的包。
15、如果在处理过程中遇到了问题,一般会有提示,大部分一般是缺少相关类,如果缺少,在第6步把缺少的依赖加进来
16、Jar包中java文件内如果有中文,可能会因为字符集不匹配变成乱码。如果有其他问题可以去百度proguard查看常见用法,或者去官网查看相关使用。
2. 反编译工具简单使用
1、下载jd-gui
混淆jar之后可以使用反编译查看混淆结果。
获取路径:10.11.1.32 test/123456 /home/test/jd-gui
拷贝整个jd-gui包到windows,同时,使用前需要在windows平台提前配置jdk8环境。
2、准备好你的jar包,这里拿上面混淆好的TestObfuscate_out.jar为例。
3、打开jd-gui包,运行jd-gui.exe
4、点击file->openfile打开jar包
5、打开文件后,点击弹窗中的TestObfuscate.class即可查看反编译后的class文件。
如上图所示,类名和testObfuscate方法名被保留,int a变量被混淆消失,testObfuscate1方法方法名被混淆成a,并且由于配置pro文件时勾选了Optimization下的Optimize参数,未设置keep的方法的访问级别也被转换成了private。