0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于frida的Objection對(duì)APP逆向過(guò)程的作用

哆啦安全 ? 來(lái)源:編碼安全 ? 作者:編碼安全 ? 2022-10-09 11:08 ? 次閱讀

582a0ea4-411d-11ed-96c9-dac502259ad0.png

背景

在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

585ec5f4-411d-11ed-96c9-dac502259ad0.png

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

58ebc33c-411d-11ed-96c9-dac502259ad0.png

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

58fdd6ee-411d-11ed-96c9-dac502259ad0.png

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

59111678-411d-11ed-96c9-dac502259ad0.png

四大組件分析

Android 四大組件分別為:

Activity

Service

BroadCast Receiver

Content Provider

可通過(guò)android hooking list 組件名稱的命令列出想查詢分析的四大組件信息

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

592adefa-411d-11ed-96c9-dac502259ad0.png

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

593b1108-411d-11ed-96c9-dac502259ad0.png

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

59616880-411d-11ed-96c9-dac502259ad0.png

搜索功能分析

以下命令用于搜索內(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]

59739f00-411d-11ed-96c9-dac502259ad0.png

查詢指定模塊的所有接口

597fe04e-411d-11ed-96c9-dac502259ad0.png

搜索APP指定字符串信息

599637cc-411d-11ed-96c9-dac502259ad0.png

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

59d1f438-411d-11ed-96c9-dac502259ad0.png

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

5a259c00-411d-11ed-96c9-dac502259ad0.png

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

5a3732b2-411d-11ed-96c9-dac502259ad0.png

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

5a584bbe-411d-11ed-96c9-dac502259ad0.png

其他功能分析

通過(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)程信息

5a7c0b4e-411d-11ed-96c9-dac502259ad0.png

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

5a8ecc02-411d-11ed-96c9-dac502259ad0.png

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

android sslpinning disable

5ab391f4-411d-11ed-96c9-dac502259ad0.png





審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 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)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Windows/Ubuntu安裝fridaobjection

    Windows環(huán)境使用管理員權(quán)限安裝frida,Ubuntu使用普通或Root權(quán)限安裝均可。
    發(fā)表于 11-17 09:36 ?1049次閱讀

    frida-inject工具使用及說(shuō)明 內(nèi)置frida-inject工具到手機(jī)系統(tǒng)

    frida-inject是frida中提供的可以直接放到手機(jī)端執(zhí)行注入js腳本到App程序進(jìn)行hook的工具。也就是說(shuō)使用frida-inject命令可以脫離PC端執(zhí)行注入了。
    的頭像 發(fā)表于 10-26 10:42 ?5300次閱讀

    035. 35 逆向APP的思路 #硬聲創(chuàng)作季

    APP
    充八萬(wàn)
    發(fā)布于 :2023年06月29日 08:51:59

    電子產(chǎn)品逆向設(shè)計(jì)完整解決方案

    已經(jīng)落后了.  l、 企業(yè)為什么要做逆向設(shè)計(jì)? 電子產(chǎn)品逆向設(shè)計(jì)過(guò)程如下: 現(xiàn)有國(guó)外最新產(chǎn)品 -> 反出PCB設(shè)計(jì)圖 -> 反出SCH原理圖 -&
    發(fā)表于 07-23 10:01

    [原創(chuàng)電子產(chǎn)品逆向設(shè)計(jì)的相關(guān)資料〈抄板軟件+PCB返原理圖〉

    了。l  企業(yè)為什么要做逆向設(shè)計(jì)?電子產(chǎn)品逆向設(shè)計(jì)過(guò)程如下:現(xiàn)有國(guó)外最新產(chǎn)品 -> 反出PCB設(shè)計(jì)圖 -> 反出SCH原理圖 -> 對(duì)原理圖
    發(fā)表于 08-27 09:40

    [資料分享]+《Android軟件安全與逆向分析》

    與ARM匯編語(yǔ)言——逆向你的原生Hello ARM 160  6.2.1  原生程序逆向初步 160  6.2.2  原生程序的生成過(guò)程 162  6.2.3  必須了解的ARM知識(shí) 164  6.3
    發(fā)表于 09-26 10:53

    三維逆向工程的成果及應(yīng)用案例

    `三維逆向工程的成果及應(yīng)用案例何為逆向工程?為適應(yīng)現(xiàn)代先進(jìn)制造技術(shù)的發(fā)展,需將實(shí)物樣件或手工模型轉(zhuǎn)化為Sence數(shù)據(jù),以便利用快速成形系統(tǒng)、計(jì)算機(jī)輔助系統(tǒng)等對(duì)其進(jìn)行處理,并進(jìn)行修改和優(yōu)化。逆向工程
    發(fā)表于 03-02 15:12

    眼睛按摩器需要找誰(shuí)來(lái)逆向開(kāi)發(fā)

    如果要逆向一個(gè)電子產(chǎn)品,比如說(shuō)眼睛按摩器,需要找誰(shuí)來(lái)逆向開(kāi)發(fā)?pcb公司在里面起什么作用?還需要找什么公司代工?
    發(fā)表于 04-22 17:31

    IC驗(yàn)證“UVM驗(yàn)證平臺(tái)加入objection機(jī)制和virtual interface機(jī)制“(七)

    輸出。而main_phase是一個(gè)完整的任務(wù),沒(méi)有理由 只執(zhí)行第一句,而后面的代碼不執(zhí)行??瓷先ニ坪鮩ain_phase在執(zhí)行的過(guò)程中被外力“殺死”了,事實(shí)上也確實(shí)如此。UVM中通過(guò)objection
    發(fā)表于 12-09 18:28

    3d打印逆向工程操作步驟、流程及作用講解

    逆向工程又稱為逆向技術(shù),主要是針對(duì)于正向工程而言。正向工程是從產(chǎn)品設(shè)計(jì)到產(chǎn)品生產(chǎn),是一種“從無(wú)到有”的設(shè)計(jì)過(guò)程,而逆向工程則是對(duì)一種產(chǎn)品設(shè)計(jì)技術(shù)再現(xiàn)的
    發(fā)表于 10-24 17:08 ?8267次閱讀

    app漏洞題 安裝包8.apk,要求獲得flag

    題目來(lái)源:Tencent某Android CTF題 題目:安裝包8.apk,要求獲得flag 知識(shí)點(diǎn):Frida/objection、IDA、AES加密 解題過(guò)程:安裝APK,點(diǎn)擊登錄,進(jìn)入如下
    的頭像 發(fā)表于 09-26 10:12 ?2437次閱讀

    逆向基礎(chǔ)題:安裝包是11.ab,要求密碼驗(yàn)證登陸

    題目來(lái)源:2019XCTF MOBILE 第三題 題目:安裝包是11.ab,要求密碼驗(yàn)證登陸。 知識(shí)點(diǎn):Frida objection,SQLCipher加解密,Android備份和還原。 解題過(guò)程
    的頭像 發(fā)表于 11-02 11:40 ?1843次閱讀

    安卓常規(guī)逆向操作涉及到的知識(shí)點(diǎn)介紹

    持久化frida(獨(dú)立執(zhí)行frida,不需要借助adb 執(zhí)行frida-server終端命令)
    的頭像 發(fā)表于 09-20 09:13 ?734次閱讀
    安卓常規(guī)<b class='flag-5'>逆向</b>操作涉及到的知識(shí)點(diǎn)介紹

    Android使用Wireshark抓包

    Frida逆向分析APP實(shí)戰(zhàn) Objection動(dòng)態(tài)分析App Frida Hook的使用方法
    的頭像 發(fā)表于 11-16 10:07 ?3944次閱讀

    聊一聊所謂的Objection機(jī)制

    Objection是UVM框架中用來(lái)同步不同組件的相同phase,以及決定當(dāng)前測(cè)試用例什么時(shí)候結(jié)束(end-of-test)的機(jī)制,這也是用戶在拿到UVM之后最直白的使用場(chǎng)景。
    的頭像 發(fā)表于 06-09 11:16 ?1725次閱讀
    聊一聊所謂的<b class='flag-5'>Objection</b>機(jī)制