對使用系統調用進行收發包的frida hook抓包
VSole2021-09-12 17:59:00
目標:請編寫frida腳本,完成對該app通信的抓包
先部署環境,將局域網段改為192.168.5.x,再將一臺主機的ip固定為192.168.5.150。
在該主機上運行服務器端程序server.exe。
在手機上裝上目標apk,打開后,就會在服務器端差不多每隔5秒收到一個請求。

現在就是要用frida腳本抓取這個包。
目標app有360的殼:

脫完殼后發現類的內容還是不完全,其中的方法都顯示為native,可能是用到了vmp。

那就去native層看看,這里加載的庫為libnative-lib.so。用ida打開apk中直接解壓出來的so會報各種解析錯誤。
打開后發現大段的代碼段都沒有解析成代碼,識別出來的函數也特別少。特別是沒有Java層中看到的stringFromJNI函數。可能文件內容被加密處理過。

用frida dump 出運行時內存中的libnative-lib.so。

再次用ida打開dump得到的so,發現內容正常很多,且識別出了stringFromJNI。

嘗試用frida hook libc的sendto和recvfrom方法,沒有得到任何信息。于是猜測可能直接用了系統調用進行消息的發送和接收。
用課上的腳本,在內存中搜索000000ef

并hook所有系統調用指令”SVC #0”

對于sendto和recvfrom系統調用,打印出消息的內容:

發現這樣就可以hook到由sendto發送的請求:

以及recvfrom接收的響應:

VSole
網絡安全專家