Android反编译

ClassyShark

背景

1、了解该项目的基本框架、使用到哪些开源项目
2、对于一些大厂的项目,我们还比较关心的是用到了哪些新的框架和技术,对于新技术的流行程度和使用普遍程度有个比较好的把握,指导是否需要进行深度的使用学习。比如最近的比较流行的 rxjava热更新 技术等等。

作用

ClassyShark 是一款可以查看 Android 可执行文件的浏览工具,支持.dex, .aar, .so, .apk, .jar, .class, .xml 等文件格式,分析里面的内容包括 classes.dex 文件,包、方法数量、类、字符串、使用的 NativeLibrary 等。
官网:http://www.classyshark.com
下载:https://github.com/google/android-classyshark/releases

使用

  1. 打开 apk 文件 java -jar ClassyShark.jar -open <YOUR_APK.apk>
  2. 将生成的所有数据导出到文本文件里 java -jar ClassyShark.jar -dump <BINARY_FILE>
  3. 将指定类生成的文件导出到文本文件里 java -jar ClassyShark.jar -dump <BINARY_FILE> <FULLY_QUALIFIED_CLASS_NAME>
  4. 打开 ClassyShark,在 GUI 界面展示某特定的类
  5. java -jar ClassyShark.jar -open <BINARY_FILE> <FULLY_QUALIFIED_CLASS_NAME>
  6. 检测 APKjava -jar ClassyShark.jar -inspect <YOUR_APK.apk>
  7. 导出所有的字符串 java -jar ClassyShark.jar -stringdump <YOUR_APK.apk>

java -jar ClassyShark.jar -open meituan.apk

sdctv

总结

通过分析 App 的项目结构和引用库的信息,我们大致掌握了该项目的架构,一些开发中的经验和不足,拓宽下开发视野,发现一些好用的开源库,增强我们的武器,这些都是我们在开发中可以借鉴的东西。

jadx

jadx -d out calc.apk

Android 逆向助手