
背景
在APP的逆向過(guò)程中避免借助使用一些反匯編工具,動(dòng)靜態(tài)調(diào)試分析工具,自然也免不了和frida這個(gè)工具打交道,frida作為強(qiáng)大的逆向分析工具在攻防過(guò)程中具有不可撼動(dòng)的地位。
很多frida玩得很溜的牛人,將frida強(qiáng)大的功能集成一個(gè)工具便于大家去使用它,這個(gè)工具就是objection。
frida github 地址
objection github地址
objection 它的功能非常強(qiáng)大,支持的命令眾多。它是基于Frida開(kāi)發(fā)的命令行工具,它可以實(shí)現(xiàn)不用寫一行代碼,便可實(shí)現(xiàn)諸如內(nèi)存搜索、類和模塊搜索、方法hook打印參數(shù)返回值調(diào)用棧等常用功能,因此稱它為一款非常便捷高端的逆向工程內(nèi)存漫游神器都不為過(guò)。
Objection功能雖然強(qiáng)大,但它有個(gè)比較大的遺憾就是缺少對(duì)native層的支持。
分析準(zhǔn)備
由于objection是基于frida的,因此在使用objection前,也是需要啟動(dòng)frida-server和端口轉(zhuǎn)發(fā)。
1.啟動(dòng)frida-server

2.端口轉(zhuǎn)發(fā)

3.objection功能的啟動(dòng)(它也是通過(guò)想目標(biāo)app進(jìn)行注入frida的so文件然后進(jìn)行做對(duì)應(yīng)功能操作)

一切就緒后目標(biāo)APP就多了個(gè)frida的so文件了

四大組件分析
Android 四大組件分別為:
Activity
Service
BroadCast Receiver
Content Provider
可通過(guò)android hooking list 組件名稱的命令列出想查詢分析的四大組件信息
通過(guò)android hooking list activities可將應(yīng)用中的所有activity列出

通過(guò)android hooking list services可將應(yīng)用中的所有services列出

通過(guò)android hooking list receivers可將應(yīng)用中的所有receivers列出

搜索功能分析
以下命令用于搜索內(nèi)存相關(guān)的
枚舉當(dāng)前進(jìn)程模塊
查看指定模塊的導(dǎo)出函數(shù)
memory list exports [lib_name]
將結(jié)果保存到j(luò)son文件中
memory list exports libart.so --json /root/libart.json
搜索內(nèi)存包含指定的字符串信息
memory search --string --offsets-only
dump整個(gè)內(nèi)存
memory dump all from_base
列出內(nèi)存中所有的類
android hooking list classes
在內(nèi)存中所有已加載的類中搜索包含特定關(guān)鍵詞的類
android hooking search classes [search_name]
在內(nèi)存中所有已加載的方法中搜索包含特定關(guān)鍵詞的方法
android hooking search methods [search_name]
直接生成hook代碼
android hooking generate simple [class_name]

查詢指定模塊的所有接口

搜索APP指定字符串信息

查詢類的詳細(xì)信息

轉(zhuǎn)存APP的運(yùn)行內(nèi)存數(shù)據(jù)

搜索內(nèi)存中的所有函數(shù)

HOOK功能分析
hook指定方法, 如果有重載會(huì)hook所有重載,如果有疑問(wèn)可以看
--dump-args : 打印參數(shù)
--dump-backtrace : 打印調(diào)用棧
--dump-return : 打印返回值
android hooking watch class_method com.xxx.xxx.methodName --dump-args --dump-backtrace --dump-return
hook指定類, 會(huì)打印該類下的所以調(diào)用
android hooking watch class com.xxx.xxx
設(shè)置返回值(只支持bool類型)
android hooking set return_value com.xxx.xxx.methodName false
查看目前所有hook的方法
Jobs list
androidhookingwatchclassio.virtualapp.home.HomeActivity
進(jìn)行hook 類io.virtualapp.home.HomeActivity

其他功能分析
通過(guò)執(zhí)android shell_exec命令,可以實(shí)現(xiàn)調(diào)用執(zhí)行指定命令功能
通過(guò)執(zhí)行 android shell_exec “ps”查詢當(dāng)前環(huán)境所有運(yùn)行的進(jìn)程信息

通過(guò)調(diào)用env命令查看APP相關(guān)的目錄

通過(guò)命令,關(guān)閉ssl校驗(yàn)
android sslpinning disable

審核編輯:劉清
-
Android系統(tǒng)
+關(guān)注
關(guān)注
0文章
57瀏覽量
14051
原文標(biāo)題:Objection高效對(duì)APP逆向分析實(shí)踐
文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Windows/Ubuntu安裝frida和objection
frida-inject工具使用及說(shuō)明 內(nèi)置frida-inject工具到手機(jī)系統(tǒng)
電子產(chǎn)品逆向設(shè)計(jì)完整解決方案
[原創(chuàng)電子產(chǎn)品逆向設(shè)計(jì)的相關(guān)資料〈抄板軟件+PCB返原理圖〉
[資料分享]+《Android軟件安全與逆向分析》
三維逆向工程的成果及應(yīng)用案例
眼睛按摩器需要找誰(shuí)來(lái)逆向開(kāi)發(fā)
IC驗(yàn)證“UVM驗(yàn)證平臺(tái)加入objection機(jī)制和virtual interface機(jī)制“(七)
3d打印逆向工程操作步驟、流程及作用講解
app漏洞題 安裝包8.apk,要求獲得flag
逆向基礎(chǔ)題:安裝包是11.ab,要求密碼驗(yàn)證登陸
Android使用Wireshark抓包
聊一聊所謂的Objection機(jī)制

基于frida的Objection對(duì)APP逆向過(guò)程的作用
評(píng)論