淘系抓包流程
结合frida
和adb
工具以及mumu
模拟器进行抓包。
具体的关系图:
-
frida
的安装frida
安装,直接安装官网的脚手架。frida
官网使用python的pip安装,python > 3。 安装后使用查看版本命令来确认是否安装。pip install frida-tools frida --version
-
adb
工具安装,adb
是安卓调试桥梁(Android Debug Bridge)。下载之后,配置一下系统环境PATH变量即可。Windows版本: https://dl.google.com/android/repository/platform-tools-latest-windows.zip Mac版本: https://dl.google.com/android/repository/platform-tools-latest-darwin.zip Linux版本: https://dl.google.com/android/repository/platform-tools-latest-linux.zip
-
mumu
模拟器的安装,因为该模拟器性能等方面相对稳定,所以选择了网易的mumu
。官网安装地址: https://mumu.163.com/index.html
-
以上工作准备完毕后,需要将模拟器先安装好淘系
APP
。接着采用adb
把frida-server
推送到模拟器上。frida-server
-> 安装地址安装该版本:
frida-server-16.0.18-android-x86_64.xz
1. 查看mumu模拟器的端口号(7555),然后本地电脑用adb链接上。 adb connect 127.0.0.1:7555 2. 通过adb devices 查看链接设备,确认是否链接成功。 3. 使用adb 把frida-server推送到模拟器里。 adb push [存放frida-server路径] [目标路径] 如: adb push frida-server /data/local/tmp/ 4. 推送后,使用adb shell 进入模拟器,到指定目录查看是否推送成功。 如: adb shell cd /data/local/tmp/ ls -l 文件存在即可。 5. 需要取得手机root权限,并且给frida-server文件给予权限: chmod 777 frida-server 6. 可以直接执行该文件,如: ./frida-server 也就是启动了模拟器端的frida-server。 7. 回到本地电脑,执行frida-ps -U 确认是否能查看到模拟器的所有进程。如果能就是成功了。
-
接下来需要写一些
frida
的 hook去进行一些数据拦截插桩。如对淘系app
抓包时,对协议的改动,使其能够抓包。import sys import frida rdev = frida.get_usb_device() # session = rdev.attach('com.taobao.etao') session = rdev.attach('com.taobao.taobao') # session = rdev.attach('com.tmall.wireless') scr = """ 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 } }) """ script = session.create_script(scr) def on_message(message, data): print('msg: ' + message) if message['type'] == 'send': print("[*] {0}".format(message['payload'])) else: print(message) script.on("message", on_message) script.load() sys.stdin.read()
-
同时,可以对模拟器进行代理,再用
fiddler
进行抓包,就可以抓到具体数据了。