您的位置:首页 > 其它

ClassyShark工具使用小记

2016-03-20 17:21 288 查看
1. ClassyShark介绍

1.1 ClassyShark是一款便利的文件浏览器,它可以浏览安卓下可执行的程序。此外,它拥有安卓APK和桌面版JAR的客户端。有了它,你可以打开APK/Dex/Jar/Class文件,并分析里面的代码。

1.2 用途介绍(翻译自官方介绍)

1.2.1. 理解你的APK内容

1.2.2. 验证业务关键数据是否正确地被混淆

1.2.3. 检测混淆配置信息。

1.2.4. 分析混淆过的堆栈跟踪

1.2.5. 管理你的APK依赖性

1.2.6. 确定所有应用程序依赖项,Java依赖和原生依赖

1.2.7. 确定测试依赖

1.2.8. 生成外部依赖测试类

1.2.9. 核对隐藏的api

1.2.10. 理解multidex应用程序的内容

1.2.11. 浏览每个dex类文件的内容

1.2.12. 统计包、方法、类、字符串等数量

1.2.13. 统计某个jar文件的方法数

1.2.14. 转储敏捷的字符串表

1.2.15. 识别丢失的本地库

1.2.16. 浏览每个classes.dex文件的原生方法

1.2.17. 浏览原生依赖

1.2.18. 浏览动态的符号

2. 准备工作

ClassyShark工具为一个jar包,从github上面下载到本地。通过命令“java -jar ClassyShark.jar“即可启动,并且打开图形界面。

3. 使用示例

3.1 点击Open打开一个apk文件,将看到整个apk的结构,以QQ为例,主要分为三部分:AndroidManifest文件,编译后的dex文件,原生依赖的.so库文件:



3.2 点击AndroidManifest文件,可以看到清单中详细的内容,比如注册的组件,使用的权限等信息:



3.3 展开dex文件,可以看到一个包列表,从中可以了解整个应用的代码结构。点击具体的包名,可以看到包下面的类文件和具体的方法信息,比如QQ上报ANR信息这个功能来说,展开com.tecent.feedback.anr, 点击ANRReport文件,可以清晰的看到由四个方法组成:开始监听anr,结束监听anr, 上传anr信息,异步上传anr信息。



3.4 展开libs文件夹,列表中为原生的一些依赖库so文件:



3.5 点击packages标签,可以切换到以包为视图的饼图界面,比如下图为QQ 头像功能对应的代码结构和类文件信息,总共由5个类组成,方法数为36个:



总结:

整个试用过程非常的简单,信息很也很清晰,详细,相对于一些反编译工具来说,方便很多。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: