日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android抓包 - Okhttp混淆导致Hook工具失效

發布時間:2024/1/18 Android 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android抓包 - Okhttp混淆导致Hook工具失效 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Android抓包 - Okhttp混淆導致Hook工具失效

本文部分內容參考 loco 大佬的文章,同時借用loco大佬文章中的2個APP(有無混淆)。

微信公眾號: yeshengit

這篇文章的主要目的是介紹使用Frida來處理APP沒使用Android自帶的HTTP客戶端進行請求,且對HTTP客戶端進行了混淆,導致JustTrustMe失效的問題。


首先,我們先看下該樣例應用的源碼,該應用做的事情就是訪問百度,我們看到下圖第41行,我們這邊配置的證書哈希是隨機的,因此無論我們如何訪問,請求都是會失效的。

開始前,我先說下測試機的環境:

雷電模擬器3.76,Android 5.1.1,開啟Root,安裝且激活了Xposed,同時激活了TrustMePlus

讓我們運行一下,沒有開混淆的APP,點擊發送請求。這邊提示請求成功

那么我們再來試試開了混淆的應用。提示證書驗證失敗

為什么會出現這種情況呢,我們可以將這2個應用使用jadx反編譯,我們可以看看區別

可以看到,左為無混淆,右為混淆,插件還是十分明顯的,此時我們再去看看JustTrustMe的源碼。

下面我給JustTrustMe的幾個關鍵點進行了標注,同時加了點注釋。其實它主要的操作就是替換了check方法.

Okhttp 2.5 check 方法返回 True

Okhttp 3.x check 方法返回 null

分析到這里,我們可以使用Frida來寫點代碼來測試測試

jsscript.js文件代碼:

if(Java.available){Java.perform(function(){var Pinner = Java.use("okhttp3.CertificatePinner");send("okHTTP 3.x Found");Pinner.check.overload('java.lang.String', 'java.util.List').implementation = function(a,b){send("Hook CertificatePinner.check success!")return null;};}); }

Hook.py代碼:

import frida, sys jsCode = "" with open("jsscript.js","r",encoding='utf-8') as f:jsCode = f.read() def message(message, data):if message["type"] == 'send':print(u"[*] {0}".format(message['payload']))else:print(message) process = frida.get_remote_device().attach("com.loco.example.OkHttp3SSLPinning") script= process.create_script(jsCode) script.on("message", message) script.load() sys.stdin.read()

注意:Frida在模擬器上運行不太穩定,現在測試環境為 nexus5 (6.0.1),Root,未安全Xposed模塊

運行下Frida腳本,看看

至此,無混淆的版本已經搞定了抓包問題,那么我們再來試試混淆版本。

混淆后的jsscript.js:

if(Java.available){Java.perform(function(){var Pinner = Java.use("d.k");send("okHTTP 3.x Found");Pinner.a.overload('java.lang.String', 'java.util.List').implementation = function(a,b){send("Hook CertificatePinner.check")return null;};}); }

于是乎

至此,全篇終!!!

SSL ping APK下載地址:

鏈接:https://pan.baidu.com/s/1vIw40alQG7K1wNkmzmAkgw
提取碼:as7g


參考

DroidSSLUnpinning: https://github.com/WooyunDota/DroidSSLUnpinning/blob/master/ObjectionUnpinningPlus/hooks.js

JustTrustMe: https://github.com/Fuzion24/JustTrustMe

tps://github.com/WooyunDota/DroidSSLUnpinning/blob/master/ObjectionUnpinningPlus/hooks.js

JustTrustMe: https://github.com/Fuzion24/JustTrustMe

總結

以上是生活随笔為你收集整理的Android抓包 - Okhttp混淆导致Hook工具失效的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。