无意间在群里看到了有大佬用0Oo做混淆,看着能够在java的url程序中可以使用,比较nice,这篇文章我也用笨方法简单的去实现下。
⊙1.混淆结果
⊙2.安卓端
⊙3.idea上面使用
-
混淆结果
在安卓上效果是这么样的:
ide编译spring项目是下方这样的:
2.安卓端
androidstudio升级之后使用的混淆器是r8的混淆了,虽然他可以完美兼容proguard,但是我在实践过程中,没有找到proguard在android-studio的jar包,查了下,确实不直接和之前的android-studio版本一样放到安装目录中了,所以采取直接编译pro-guard然后替换jar包的方式失败了,还是采取一个笨方法。
首先在module的build.gradle 开启混淆
然后在proguard-rules.pro中写明
-classobfuscationdictionary ./pro-android.txt
-packageobfuscationdictionary ./pro-android.txt
-obfuscationdictionary ./pro-android.txt
这个其实就是混淆里面的一些字典,我生成了下,把下面的字符添加到pro-android.txt即可
然后编译完就和章节1的代码混淆相同了,这个字典其实可以自定义的,除了这些,感兴趣的读者可以自己做一个。
3.idea上面使用
把下方的plugin放到pom中
<plugin>
<groupId>com.github.wvengen</groupId>
<artifactId>proguard-maven-plugin</artifactId>
<version>2.6.1</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>proguard</goal>
</goals>
</execution>
</executions>
<configuration>
<injar>${project.build.finalName}.jar</injar>
<outjar>${project.build.finalName}_hunxiao.jar</outjar>
<obfuscate>true</obfuscate>
<proguardInclude>proguard.conf</proguardInclude>
<libs>
<lib>${java.home}/</lib>
</libs>
<inLibsFilter>!META-INF/**</inLibsFilter>
<outputDirectory>${project.basedir}/target</outputDirectory>
<options>
</options>
</configuration>
</plugin>
然后在项目的父目录下面写一个proguard.conf,内容也为
-obfuscationdictionary dic.txt
-classobfuscationdictionary dic.txt
-packageobfuscationdictionary dic.txt
在pom.xml同级目录写一个dic.txt,内容为混淆字典的一些东西
然后使用mvn打包的时候就会把一些变量和包名混淆了。
混淆字典想要获取:回复本公众号:混淆字典,即可获取。
学习逆向和爬虫可以关注我朋友:
我是BestToYou,分享工作或日常学习中关于Android、iOS逆向及安全防护的一些思路和一些自己闲暇时刻调试的一些程序,文中若有错误或者不足的地方,恳请大家联系我批评指正。
扫码加我为好友
原文始发于微信公众号(二进制科学):使用proguard混淆自己的java代码
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论