背景
在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文章
56瀏覽量
13306
原文標(biāo)題:Objection高效對(duì)APP逆向分析實(shí)踐
文章出處:【微信號(hào):哆啦安全,微信公眾號(hào):哆啦安全】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論