Android反编译App的一次实践

最近项目准备上线版本迭代,但是投产前要先过了安全检测,结果下来后懵逼了,检测出来的漏洞比上个版本的检测还多,其中有个中危的我比较在意:反编译结果显示未经过加固和有效混淆?于是抱着怀疑的态度去做一次加固前和加固后的反编译对比,结果。。。

本次反编译实践使用到的工具有:

apktool: 用于从apk文件提取classes.dex文件的,v2.4.0版本。官网下载
dex2jar: 将classes.dex文件转成classes-dex2jar.jar,v2.0版本。官网下载
jd-gui-windows-1.4.1 图像化工具,查看classes-dex2jar.jar源码。官网下载

我这里是把这几个工具都整到一个目录下了。
在这里插入图片描述
操作步骤可以简单分为3步:

1、利用apktool提取classes.dex
2、利用dex2jar将dex转换成jar
3、利用gui工具查看反编译代码

apktool提取classes.dex

命令进入到apktool目录下,执行命令 apktool d -s xxx.apk,如下图,输入apktool d -s sec_unsigned.apk后会生成sec_unsigned文件夹,classes.dex就在其中,到此我们的dex文件就提取好了。
在这里插入图片描述

拓展
上面用到的是apktool d -s ,有兴趣的可以试试其他的。
在这里插入图片描述

dex2jar将dex转成jar

上一步我们已经得到classes.dex文件,现在我们将dex拷贝到dex2jar-2.0文件夹下
在这里插入图片描述
然后命令进入dex2jar-2.0文件夹执行命令 d2j-dex2jar classes.dex即可生成我们最终需要的 classes-dex2jar.jar
在这里插入图片描述

jd-gui查看源码

我们打开gui图形化工具,打开 classes-dex2jar.jar文件,可以看到源码结构和部分代码
在这里插入图片描述
这里有遇到过两个坑,一是打开gui工具,如果我们遇到以下问题,可以敲命令到jd-gui.exe 目录下,输入 java -jar jd-gui.exe 即可打开
在这里插入图片描述

到此,简单的反编译已经做完了。

加固前后对比

上面反编译的是加固前的apk,那么如果apk加固后了呢,还能不能按上面的方法反编译呢?搞起
在这里插入图片描述
可见,加固还是有点用的,同样的操作步骤,加固后是反编译不出来了。

市面上有很多加固平台可选,小伙伴们自己衡量,值得注意的是有些应用市场上,如果没加固过是禁止上的。

最后

以上就是本人的一次小小的实践,有哪里说的不对的,还请大神们指正。

欢迎关注我的个人微信公众号,【优了个秀】和你每天进步一点点
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值