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



原创粉丝点击