Inspeckage是一个用来动态分析安卓app的xposed模块。Inspeckage对动态分析很多常用的功能进行了汇总并且内建一个webserver。整个分析操作可以在友好的界面环境中进行。可以参考: Inspeckage - Android Package Inspector
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的过程可以快速获得一些信息,节省分析的时间。