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