Frida Hook与Fiddler完美抓包手淘

实现工具: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

安装这里比较坑,会出现“Building wheel for frida”,卡半天最后还报错。因为国内访问国外的 Frida 网速很慢,这里可以切换国内镜像下载重试,

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

如果切换镜像后还是出现问题,那只好选择手动安装了:

在镜像站https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/frida/选择对应的版本下载

image

将下载好的“frida-12.7.5-py3.7-win-amd64.egg“文件放在“Python37\Lib\site-packages”目录下,再执行“pip3 install frida”即可安装。

确认frida、python3环境搭建好后就可进行以下面步骤了↓

打开mumu模拟器,在cmd窗口输入以下指令使连接到模拟器():

adb connect 127.0.0.1:7555
image

接着进入虚拟机查看下模拟器cpu类型,在cmd输入:

adb shell
getprop ro.product.cpu.abi
image

可以看到,我是x86的,所以这里选择下载x86的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

通过命令转发模拟器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窗口,本机执行 frida-ps -U 应该能看到模拟器上启动的包名。

接着用模拟器打开app,将代码中替换淘宝包名“com.taobao.taobao”,执行以下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()

若执行脚本时,出现pid占用报错:

image

这时需要进入虚拟机,输入命令 kill -s 9 占用端口号,杀死占用端口后再执行。

image

最后,打开fiddler,配置https,模拟器安装fiddler证书,配置好代理,关于fiddler如何使用本文不再赘述,摆渡一下就知道。

此时此刻已经可以完美抓包了,一些抓不到的请求也浮出水面鸟~

这里以淘宝APP示例:

image

你可能感兴趣的:(Frida Hook与Fiddler完美抓包手淘)