Jar包代码混淆操作指导

目前eclipsesdk默认对打包的jar包代码都没有进行代码混淆,鉴于java代码很容易被反编译,因此对安全性要求比较高的jar包而言,对其进行代码混淆是非常必要的。下面对jar包代码混淆的操作步骤进行如下说明:

 

1.找到sdk自带的专业的代码混淆工具Pro Guard----proguardgui.bat,该文件在你的sdk目录下的sdk\tools\proguard\bin文件中:如下图:

 

图1

点击运行该程序,会弹出如下的运行界面:

 

图2

 

2.准备资料:

在进行jar包混淆的时候需要准备你制作jar包的时候需要应用的所有的第三方jar包和so文件,最好这个第三方资源都整理到一个文件家中,但事后方便添加;

 

图3

如下三个jar包,都要作为准备材料。

 

3.准备好的你需要混淆的jar包,以及混淆后你需要存放的目录。

 

4.开始混淆。

 

图4

如上图所示,1表示加载配置文件,由于配置文件长什么样,对于新手来说,肯定不知道,没关系,我们让这款软件帮我们生成一个半成品,然后再在半成品的基础上修改就可以了,所以我们点击next,就来到了下面这个界面,那么我们之前准备的材料现在要导入了。

 

5.导入,需要混淆的jar包,以及该jar包依赖的第三方资源;

 

 

图5

途中1.add input,点击找到你要混淆的目标jar包,add output,就是混淆好后的jar存放目录,这个根据自己的兴趣爱好设置。途中2就是需要添加之前你准备好的依赖的三方资源,什么jar包,so库文件,凡是你的目标jar包依赖的统统加入。其实这个proguard软件非常方便,左边就是对应的菜单栏。 这一步完成了,就是一直点击右下加的next按钮。直到下面这个目录Process

6.process目录。


图6

接着,我们到了process操作界面,下面是就是上面提到的非常重要的配置文件的生成了,上图中的1,就是浏览配置文件,我们点击它就会出现软件默认给我们初始化好的混淆配置文件,上图中的2就是保存这个系统默认的配置文件。为什么需要这个配置文件呢?这个配置文件就是告诉这个软件,我们jar包中的那些类不能混淆,因为这些特殊类的一但混淆了,我们的jar包就不能正常工作了,那么jar包代码混淆毫无意义了。

之前说过我们不知道这个配置文集那长啥样,那我们现在保存一下系统默认的配置文件,然后在它的基础上修改我们需要保存的类,去掉不需要保存的类,然后重新装载配置文件,(l这个时候就知道图2右下加的LoadConfiguration按钮的作用了吧)。

 

7.保存以及修改配置文件。

 

图7

图7就是保存系统默认的配置文件,注意以pro为后缀的文件。然后找到该文件,用记事本或者其他软件比如notpad++,打开这个配置文件,如图8所示。

图8中,我们可以知道配置文件的书写格式,前面都是引入的库文件的申明,这个我们不用管。主要看图8中的1和2。1表示要保存main方法,因为这是java中的主入口,如果你的jar包中不包含该方法,则必须用#把这一行去掉。2则表示保存枚举方法,*通配符就是表示所有的枚举都保存。我们需要保存自己的类,也是如此的语法,例如,要保存jar包中MyActivity.class这个类,那么只需要加上这一句就可以了:

-keep com.examle.demo.MyActivity也就是完成的类名,如果需要保留这个类里面所有的方法和变量,则在配置文件中加上这句:-keep com.examle.demo.MyActivity{*;},如此就可以了。

     当然,官方有专门的保住文档,主要帮助解决配置文件书写的规则以及常见问题的 解决方法的。网站网址:

 

http://proguard.sourceforge.net/manual/troubleshooting.html#duplicateclass

 

 

 

 

图8

 

8.运行process

当配置文件配置好后,我们点击该软件的左边菜单栏的第一项“ProGuard,然后点击右下角的LoadConfigration,加载修改好的配置文件,然后一直点击next,直至出现process,然后点击process,系统就会运行起来,如果没有错误,最后在文档末尾处会出现successful的提示。至此,jar包混淆完成。

9.注意事项。

配置文档,如果书写语法错误,会出现无法加载的错误,其他的各种报错,请参照官网的教程进行修改。一般需要在新的工程中引用的类或者方法,需要在配置文件中保留下来,不能混淆,否则就会报找不到该类或者该方法的错误。

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Java Jar混淆工具是用于保护Java代码的安全性和防止逆向工程的工具。混淆工具通过对Java程序中的类名、方法名、变量名等进行重命名和加密处理,从而使得逆向工程变得更加困难。 混淆工具的主要功能包括:重命名、代码隐藏、字符串加密、控制流混淆等。重命名是对Java程序中的类名、方法名等进行随机化,使得代码难以被理解。代码隐藏是通过删除无用的代码块和调整代码结构来减少代码的易读性,从而增加反编译的难度。字符串加密是对程序中的字符串进行加密处理,使得字符串的内容不易被直接获取。控制流混淆是通过改变代码的执行流程,增加代码的复杂性,使得程序的逻辑难以被理解。 混淆工具的优点是可以有效地防止代码被逆向工程,保护程序的安全性。通过混淆工具处理后的代码,即使逆向工程师通过反编译获取了代码,也很难理解其逻辑和结构。此外,混淆工具还可以减小程序的体积,提高运行效率,进一步保护程序的机密性。 然而,混淆工具也存在一些局限性。混淆工具处理后的代码可能会出现一些不可避免的问题,如编译错误、程序运行错误等。此外,混淆工具只能提高程序的安全性,但不能完全保证代码的绝对安全。在实际使用混淆工具时,开发者还需要采取其他一些安全措施,如使用加密算法保护敏感数据、增加代码逻辑验证等。 总之,Java Jar混淆工具是一种常用的保护Java代码安全性的工具,通过对Java程序的类名、方法名、变量名等进行重命名和加密处理,有效地增加了逆向工程的难度。但开发者在使用混淆工具时,还需要注意处理后代码的兼容性和可能出现的问题,并采取其他安全措施来维护程序和数据的安全。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值