Inspeckage,安卓动态分析工具
?
From:安卓分析工具 Inspeckage 介紹:http://xdxd.love/2016/08/09/安卓分析輔助工具Inspeckage介紹/
PJ 微信數(shù)據(jù)庫(kù) 并查詢數(shù)據(jù)上傳服務(wù)器:http://blog.csdn.net/qq_35834055
https://github.com/1998lixin/WeChat-database/tree/dev
安卓 Hacking Part ( 1 -?24 ):https://www.anquanke.com/post/id/85839
?
Inspeckage 簡(jiǎn)介
? ? ? ? Inspeckage (Package Inspector)是一個(gè)簡(jiǎn)單的應(yīng)用程序(apk),也是一個(gè)用來(lái)動(dòng)態(tài)分析安卓 app 的 xposed 模塊。通過(guò)一個(gè)內(nèi)部的?HTTP 服務(wù)器提供友好的網(wǎng)頁(yè)界面,作為 Xposed 框架模塊。用戶可以在沒(méi)有 Xposed 的情況下運(yùn)行,但是 80% 的功能都是依賴于 Xposed 框架,所以建議在測(cè)試環(huán)境/設(shè)備中安裝該框架。??
可以參考:Inspeckage - Android Package Inspector:https://github.com/ac-pm/Inspeckage
?
Inspeckage 在 Android 設(shè)備上運(yùn)行:
安裝完 Xposed Installer 后,可以在 xposed 的? " 下載 " 里面 搜索 " Inspeckage " 關(guān)鍵字,就可以找到?Inspeckage??
點(diǎn)擊 ,跳轉(zhuǎn)到?Inspeckage 信息頁(yè)面,點(diǎn)擊 "版本" ---> "安裝",即可安裝?Inspeckage,安裝完需要重啟模擬器。
可以在桌面上看到 inspeckage 的圖標(biāo),在 choose target 下拉列表中選擇要分析的 app,這里選擇 "?識(shí)貨.apk "
識(shí)貨.apk 下載地址:https://www.wandoujia.com/apps/5780453
然后在電腦的 terminal 中執(zhí)行 "?端口轉(zhuǎn)發(fā) " 命令:adb forward tcp:8008 tcp:8008
?( 如果有多個(gè)設(shè)備時(shí),使用 adb devices 查看設(shè)備,再使用?-s 指定要連接的設(shè)備)
轉(zhuǎn)發(fā)電腦的 8008 端口到手機(jī)的 8008 端口。
在電腦上訪問(wèn) http://127.0.0.1:8008?就可以看到 inspeckage 的 web 界面了。
點(diǎn)擊頁(yè)面,開(kāi)啟實(shí)時(shí)更新為 on,然后在模擬器中點(diǎn)擊 LAUNCH APP,在頁(yè)面中刷新就可以看到數(shù)據(jù)了。動(dòng)態(tài)刷新開(kāi)關(guān)打開(kāi),webserver就會(huì)加載手機(jī)端的所有數(shù)據(jù)。(這個(gè)開(kāi)關(guān)并不是控制手機(jī)端工具的開(kāi)關(guān),僅僅是webserver是否動(dòng)態(tài)刷新數(shù)據(jù)的開(kāi)關(guān)。查看數(shù)據(jù)時(shí),可以關(guān)閉動(dòng)態(tài)刷新,否則展開(kāi)數(shù)據(jù)會(huì)不斷的被收起,無(wú)法正常查看)
(如果 web 頁(yè)面沒(méi)有輸出結(jié)果,查看 APP is running 是否為 true,Logcat 左邊分那個(gè)自動(dòng)刷新按鈕是否開(kāi)啟)
?
?
頁(yè)面功能說(shuō)明
如圖所示,inspeckage 提供了對(duì)所分析 apk 的一些基本信息,提供直接下載 apk 到電腦,截圖手機(jī)屏幕等輔助功能,最核心的功能是監(jiān)控 share preferences,加解密函數(shù)的使用,http 訪問(wèn)等。下面一一分析。
?
?
設(shè)置
使用 logcat 功能需要先轉(zhuǎn)發(fā)端口到本地:adb forward tcp:8887 tcp:8887
點(diǎn)擊 start,再點(diǎn) connect 就可以在網(wǎng)頁(yè)中實(shí)時(shí)查看該 app 的 logcat 輸出。
Tree view 按鈕可以實(shí)時(shí)瀏覽 app 的數(shù)據(jù)目錄并直接下載文件到本地。
?
?
如果采用 inspeckage 來(lái)分析的話,直接在 crypto 記錄中就可以看到。
(?識(shí)貨.apk 的 6.23.1 版本 有個(gè)函數(shù)在 so 里面 )?
由于這個(gè)apk 采用的 md5 方法是寫在 so 中的,所以 inspeckage 的 hash 記錄中并沒(méi)有相關(guān)的記錄。這個(gè)可以采用 hook 自定義函數(shù)的方式來(lái)解 決。
反編譯 apk,找到調(diào)用 so 的方法為 getPart2,同理其實(shí)也可以手動(dòng) hook 住 getPart1。
設(shè)置好 hook 的方法后,重啟 app 生效。
在 hook 的記錄中可以看到 getPart2 的返回值。Inspeckage 在動(dòng)態(tài)分析 apk 的過(guò)程可以快速獲得一些信息,節(jié)省分析的時(shí)間。
?
?
功能
使用 Inspeckage,用戶可以獲取大量關(guān)于應(yīng)用程序行為的信息:
模塊說(shuō)明
- Logcat ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 實(shí)時(shí)查看該app的logcat輸出
- Tree View ? ? ? ? ? ? ? ? ? ? ? ? 可以實(shí)時(shí)瀏覽app的數(shù)據(jù)目錄并直接下載文件到本地
- Package Information?????應(yīng)用基本信息(組件信息、權(quán)限信息、共享庫(kù)信息)
- Shared Preferences???????LOG:app XML文件讀寫記錄;Files:具體XML寫入內(nèi)容
- Serialization ? ? ? ? ? ? ? ? ? ? 反序列化記錄
- Crypto ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?常見(jiàn)加解密記錄(KEY、IV值)
- Hash ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 常見(jiàn)的哈希算法記錄
- SQLite ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? SQLite數(shù)據(jù)庫(kù)操作記錄
- HTTP ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? HTTP網(wǎng)絡(luò)請(qǐng)求記錄
- File System ? ? ? ? ? ? ? ? ? ? ?文件讀寫記錄
- Misc. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?調(diào)用Clipboard,URL.Parse()記錄
- WebView ? ? ? ? ? ? ? ? ? ? ? ? ?調(diào)用webview內(nèi)容 ? ? ? ? ? ? ? ? ?
- IPC ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 進(jìn)程之間通信記錄
- +Hooks ? ? ? ? ? ? ? ? ? ? ? ? ? ? 運(yùn)行過(guò)程中用戶自定義Hook記錄
?
?
1、信息收集
獲取APP基本信息(如上圖所示)
【1】權(quán)限:請(qǐng)求權(quán)限(Requested Permissions)、自定義權(quán)限(APP Permissions)
【2】組件:導(dǎo)出和非導(dǎo)出的組件(Activity、Service、Broadcast Receiver、Content Provider)
【3】共享庫(kù)(Shared Libraries)
【4】標(biāo)志位:Debuggable,Allow Backup
【5】其他:UID,GIDs,Package等
??? l? 請(qǐng)求權(quán)限
??? l? App權(quán)限
??? l? 共享庫(kù)
??? l? 導(dǎo)出和非導(dǎo)出的Activity,內(nèi)容提供其,廣播接收器和服務(wù)
??? l? 檢查該應(yīng)用程序是否可調(diào)式
??? l? 版本,UID和GID
?
2、Hooks
使用 Hooks,用戶可以實(shí)時(shí)查看應(yīng)用程序的行為:
【1】Shared Preferences(日志和文件)
【2】Serialization(序列化)
【3】Crypto(加密)、Hash
【4】SQLite數(shù)據(jù)庫(kù)
【5】HTTP、WebView、IPC等
【6】Hooks(自定義HOOK)
??? l? 共享首選項(xiàng)(日志和文件)
??? l? 序列化
??? l? 加密
??? l? 哈希表
??? l? SQLite數(shù)據(jù)庫(kù)
??? l? HTTP(HTTP代理工具是最好的選擇)
??? l? 雜項(xiàng)(剪貼板,URL.Parse())
??? l? WebView
??? l? IPC
使用 Logcat 查看日志的功能,需要先轉(zhuǎn)發(fā) 8887 端口到本地:
點(diǎn)擊 Start,再點(diǎn) connect 就可以在網(wǎng)頁(yè)中實(shí)時(shí)查看 app 的 logcat 輸出
?
+Hooks 模塊中,可對(duì)被測(cè) APP 進(jìn)行 hook,很方便。
?
?
3、其他操作
使用 Xposed,用戶可以執(zhí)行一系列操作,例如開(kāi)啟非輸出的Activity:
l? 開(kāi)啟任意Activity(輸出和非輸出)
l? 調(diào)用提供器(輸出和非輸出)
l? 禁用FLAG_SECURE
l? 取消SSL選項(xiàng)
l? 開(kāi)啟、停止或重啟應(yīng)用程序
?
4、附加部分
l? APK下載
l? 查看應(yīng)用程序的目錄樹(shù)
l? 下載應(yīng)用程序的文件
l? 下載hooks生成的文本文件格式的輸出
l? 屏幕截圖
?
5、配置
設(shè)置選項(xiàng)中,提供了ssl uncheck,設(shè)置代理等。經(jīng)過(guò)測(cè)試發(fā)現(xiàn) SSL uncheck 效果一般。https 流量依然很多抓不到。
盡管該工具有一些連接 HTTP 庫(kù)的 hooks,使用外部代理工具仍然是分析應(yīng)用程序流量的最好的選擇。
在 Inspeckage 中,用戶可以:
l? 添加連接目標(biāo)應(yīng)用的代理
l? 啟用和禁用代理
l? 在ARP表中添加條目
?
?
?
總結(jié)
以上是生活随笔為你收集整理的Inspeckage,安卓动态分析工具的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Python爬虫四(正则表达式)
- 下一篇: ARM 汇编基础教程番外篇 ——配置实验