Frida Hook與Fiddler完美抓包手淘

實現(xiàn)工具:python3.7+frida 12.7.5+ frida-server x86 +win10+模擬器安卓+Fiddler

frida 版本:這里采用12.7.5

模擬器:這里選用mumu模擬器,必須開啟root權限

首先本機安裝python3的frida模塊和frida-tools工具

pip3 install frida==12.7.5
pip3 install frida-tools

安裝這里比較坑,會出現(xiàn)“Building wheel for frida”,卡半天最后還報錯。因為國內(nèi)訪問國外的 Frida 網(wǎng)速很慢,這里可以切換國內(nèi)鏡像下載重試,

pip3 install frida -i https://pypi.mirrors.ustc.edu.cn/simple/ 
pip3 install frida-tools -i https://pypi.mirrors.ustc.edu.cn/simple/ 

如果切換鏡像后還是出現(xiàn)問題,那只好選擇手動安裝了:

在鏡像站https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/frida/選擇對應的版本下載

image

將下載好的“frida-12.7.5-py3.7-win-amd64.egg“文件放在“Python37\Lib\site-packages”目錄下,再執(zhí)行“pip3 install frida”即可安裝。

確認frida、python3環(huán)境搭建好后就可進行以下面步驟了↓

打開mumu模擬器,在cmd窗口輸入以下指令使連接到模擬器(\color{red}{若本機未裝adb,需擺渡自行安裝}):

adb connect 127.0.0.1:7555
image

接著進入虛擬機查看下模擬器cpu類型,在cmd輸入:

adb shell
getprop ro.product.cpu.abi
image

可以看到,我是x86的,所以這里選擇下載x86的frida-server安裝包。

\color{red}{frida-server版本需和本機一致}

frida-server下載地址:https://github.com/frida/frida/releases?after=12.7.5

下載后,把文件解壓push到模擬器上:

adb push frida-server-12.7.5-android-x86 /data/local/tmp/frida-server

通過命令轉(zhuǎn)發(fā)模擬器tcp端口

adb forward tcp:27043 tcp:27043 
adb forward tcp:27042 tcp:27042

然后adb shell進入虛擬機:

cd /data/local/tmp/    //進入frida-server所在目錄
chmod 777 frida-server    //賦予權限
./frida-server    //啟動運行

運行啟動后,不要關閉cmd窗口,讓他一直運行就好了。

重新打開一個cmd窗口,本機執(zhí)行 frida-ps -U 應該能看到模擬器上啟動的包名。

接著用模擬器打開app,將代碼中替換淘寶包名“com.taobao.taobao”,執(zhí)行以下python hook 代碼:


import frida, sys

jscode = """

Java.perform(function () {

var SwitchConfig = Java.use('mtopsdk.mtop.global.SwitchConfig');

    SwitchConfig.isGlobalSpdySwitchOpen.overload().implementation = function(){

        var ret = this.isGlobalSpdySwitchOpen.apply(this, arguments);

        console.log("isGlobalSpdySwitchOpenl "+ret)

        return false

    }

})

"""

def on_message(message, data):

    if message['type'] == 'send':

        print("[*] {0}".format(message['payload']))

    else:

        print(message)

process = frida.get_usb_device().attach('APP包名')

script = process.create_script(jscode)

script.on('message', on_message)

script.load()

sys.stdin.read()

若執(zhí)行腳本時,出現(xiàn)pid占用報錯:

image

這時需要進入虛擬機,輸入命令 kill -s 9 占用端口號,殺死占用端口后再執(zhí)行。

image

最后,打開fiddler,配置https,模擬器安裝fiddler證書,配置好代理,關于fiddler如何使用本文不再贅述,擺渡一下就知道。

此時此刻已經(jīng)可以完美抓包了,一些抓不到的請求也浮出水面鳥~

這里以淘寶APP示例:

image
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容