打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
常用的Android反编译工具

好久没有写博客,一直在用自己的印象笔记记录一些问题。2017年了,想重新的把博客写起来。也希望通过这个平台交一些朋友。

什么是反编译?

反编译的定义--计算机软件反向工程(Reverse engineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(比如可执行程序)进行“逆向分析、研究”工作,以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码。
  • 1
  • 1

对于Android来说,反编译就是将一个apk转换成相应的资源文件(可能被混淆了)和Java代码(可能被混淆了)。这一过程可能是apk->dex->jar->查看代码,也可能是apk->资源文件+smali,也可能直接是apk->查看代码。这个过程就就需要对具体的反编译工具而言了。

反编译工具有什么用?

一个新的强大的库想知道哪些大厂在使用,可以反编译大厂的apk,看看有没有相应的包。

apk发布以后发现有问题,可能某些功能漏了,反编译看看相应的代码是否存在就知道了。

看着别人apk的动画效果好厉害,反编译别人的apk,然后查找相应的代码模仿(很大可能也找不到)。

了解例如apt生成代码的效果,反编译代码就可以看到生成的代码(当然在build/generated/source/apt目录下也可以看到)。

反编译工具有哪些?

dex2jarjd-guijadxenjarifyApktool

上面的5种反编译相关的工具都是开源的。

  • 最开始反编译工具是dex2jar可以将dex转化成jar包,然后可以将jar通过jd-gui来转换。
  • 发现这个过程需要两步才能完成,后来直接使用jadx将apk反编译查看代码。
  • 使用jd-gui/jadx查看代码的时候,跳转以及查找都比较的慢。就使用enjarify(号称可以反编译出来的类最多)将apk反编译成dex,然后使用jadx将dex反编译成java代码,使用Android Studio查看代码。
  • 使用apktool可以反编译出资源文件。

所以现在我的习惯,对于直接给的jar(其它部门的SDK)使用jd-gui。对于不需要去具体看代码的apk使用jadx直接查看。对于可能需要研究的代码,使用enjarify + jadx + Andorid Studio。需要查看资源文件就使用apktool。

一个小的tips,使用adb命令快速的找到当前在那个界面。

adb shell dumpsys window windows | grep -E ‘mCurrentFocus'
  • 1
  • 1

更多的adb命令还可以查考awesome-adb

最后反编译不是我们学习的全部,但是了解一点还是对开发有帮助的。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
三种常用的Apk反编译工具
Android逆向之旅---反编译利器Apktool和Jadx源码分析以及错误纠正
Android之用jadx进行反编译
手把手教你搞懂Android反编译
🔥Android反编译神器,让你轻松查看APK源码!
APK反编译过程及用到的工具
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服