对使用系统调用进行收发包的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
网络安全专家