Inspeckage,安卓动态分析工具
来源:互联网 发布:摩比神奇 知乎 编辑:程序博客网 时间:2024/06/05 09:56
Inspeckage是一个用来动态分析安卓app的xposed模块。Inspeckage对动态分析很多常用的功能进行了汇总并且内建一个webserver。整个分析操作可以在友好的界面环境中进行。可以参考:Inspeckage - Android Package Inspector
https://github.com/ac-pm/Inspeckage
Inspeckage的安装就不赘述了,参考xposed框架的安装以及使用。下面主要介绍一下Inspeckage的功能和使用。
安装之后,可以在桌面上看到inspeckage的图标。点开之后主界面如下:
在choose target下拉列表中选择要分析的app,这里以乌云峰会puzzle1中的apk为例进行介绍。然后在电脑的terminal中执行
adb forward tcp:8008 tcp:8008
转发手机的8008端口到本地。在电脑上访问http://127.0.0.1:8008 就可以看到inspeckage的web界面了。
如图所示,inspeckage提供了对所分析apk的一些基本信息,提供直接下载apk到电脑,截图手机屏幕等辅助功能,最核心的功能是监控share preferences,加解密函数的使用,http访问等。下面一一分析。
设置选项中,提供了ssl uncheck,设置代理等。经过测试发现SSL uncheck效果一般。https流量依然很多抓不到。
使用logcat功能需要先转发端口到本地。adb forward tcp:8887 tcp:8887
点击start,再点connect就可以在网页中实时查看该app的logcat输出。
Tree view按钮可以实时浏览app的数据目录并直接下载文件到本地。
wooyun这个puzzle的writeup中是使用smali插桩的方式打印出了aes加密的密钥。
如果采用inspeckage来分析的话,直接在crypto记录中就可以看到。
由于这个apk采用的md5方法是写在so中的,所以inspeckage的hash记录中并没有相关的记录。这个可以采用hook自定义函数的方式来解决。
反编译apk,找到调用so的方法为getPart2,同理其实也可以手动hookgetPart1。
设置好hook的方法后,重启app生效。
在hook的记录中可以看到getPart2的返回值。Inspeckage在动态分析apk的过程可以快速获得一些信息,节省分析的时间。
1. Inspeckage是一个简单的应用程序(apk),对动态分析很多常用的功能进行了汇总,并且内建了一个HTTP服务器来提供友好的网页界面
2. 下载链接:http://repo.xposed.info/module/mobi.acpm.inspeckage
### 运行界面 ### choose target下拉列表中可以选择要分析的APP
3. Module disabled表明测试环境中没有安装Xposed框架,用户可以在没有Xposed的情况下运行Inspeckage,但是绝大部分功能都要依赖Xposed框架,所以建议在测试环境中安装该框架,本文只是简单介绍工具的功能
4. 终端执行如下命令,转发手机的8008端口到本地
5. 电脑上访问 http://127.0.0.1:8008 就可以看到Inspeckage的web界面
6. 功能一:获取APP基本信息(如上图所示)
【1】权限:请求权限(Requested Permissions)、自定义权限(APP Permissions)
【2】组件:导出和非导出的组件(Activity、Service、Broadcast Receiver、Content Provider)
【3】共享库(Shared Libraries)
【4】标志位:Debuggable,Allow Backup
【5】其他:UID,GIDs,Package等
7. 功能二:实时查看应用程序的行为(如上图所示)
【1】Shared Preferences(日志和文件)
【2】Serialization(序列化)
【3】Crypto(加密)、Hash
【4】SQLite数据库
【5】HTTP、WebView、IPC等
【6】Hooks(自定义HOOK)
### Note ###
【1】上述功能基本都依赖Xposed框架,所以只是单纯对功能进行介绍了解
【2】可以在界面上配置需要的功能项
【3】使用Logcat查看日志的功能,需要先转发8887端口到本地
点击Start,再点connect就可以在网页中实时查看app的logcat输出
【4】设置自定义Hook
8. 功能三:其他操作
【1】开启任意Activity组件(导出和非导出)
【2】调用Provider组件(导出和非导出)
【3】开启、停止、重启应用程序
9. 参考资料
【1】http://xdxd.love/2016/08/09/安卓分析辅助工具Inspeckage介绍/
【2】http://www.freebuf.com/sectool/98607.html
- Inspeckage,安卓动态分析工具
- 安卓动态分析工具 Inspeckage
- Android动态分析工具Inspeckage
- MAT 安卓内存分析工具
- 安卓动态管理Fragment深入分析
- 安卓动态监听服务的工具类
- 利用infer工具分析安卓android源码
- 安卓APK分析工具APKAnalyser的使用
- 利用infer工具分析安卓android源码
- 安卓内存分析工具Mat的基本用法
- Python.androguard -- 安卓的逆向分析工具
- 安卓逆向系列教程(三)静态分析工具
- 安卓App热补丁动态修复原理分析
- 安卓开发与分析者的利器--安卓右键工具
- 安卓开发与分析者的利器--安卓右键工具
- 安卓系统工具
- 安卓编译工具
- 安卓开发工具
- Quest、Mission、Task——游戏中的“任务”
- Fiddler抓包使用教程-安装配置
- 纯js实现复制到剪贴板功能
- C/C++应用程序的构建过程
- C++ string格式化输出
- Inspeckage,安卓动态分析工具
- 微信 开发诡异的40029错误invalid code错误 443 failed to respond错误的解决办法
- Quartz-spring整合 静态任务
- RDD/Dataset/DataFrame互转
- Python 列表排序方法reverse、sort、sorted详解
- 关于导航视图控制器下collectionview下移的问题
- CentOS 7 RPM 安装 MySQL5.7
- ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)解决办法及原因
- 【腾讯TMQ】VR 视频识别率测试方案