安卓APP使用Frida Hook进行HTTPS抓包完整教程

安卓APP-HTTPS抓包Frida Hook教程

环境

Windows10主机安装adb、frida16.1.4

BlueStacks 5 China官网最新版

准备阶段

  • 模拟器root,在设置中就可以找到

  • 模拟器打开ADB开关

  • 连接adb,做端口转发adb connect 127.0.0.1:5555

    adb forward tcp:27042 tcp:27042

    adb forward tcp:27043 tcp:27043

对于抓包操作,除了使用Frida Hook方法,也可以考虑使用全平台抓包工具如SniffMaster,它支持HTTPS、TCP和UDP协议,可在iOS/Android/Mac/Windows设备上实现无需代理、越狱或root的抓包操作,提供免费强大的代理抓包功能。

抓包

  1. 连接adb shell,向模拟器上传frida-server,并启动frida-server端

  2. 查看要抓的包名-引用自https://zhuanlan.zhihu.com/p/467828480?utm_id=0

  3. 在adb shell中执行命令,开启tcpdump抓包,这个目录是模拟器资源管理器的Download目录,方便导出

  4. Windows端执行frida hook,抓ssl证书

sslkeyfilelog.js 文件内容

  1. 开始在模拟器端执行各种APP中的操作,例如登录、搜索等,这些数据包都会被抓取,操作完毕后,在adb shell中按Ctrl c关闭tcpdump抓包

  2. 把步骤4中抓到的sslkey放到sslkey.txt文件,把步骤3中抓到的damai.pcap导出来

  1. 用wireshark打开damai.pcap,去wireshrak导航栏的编辑-首选项中选TLS,导入sslkey.txt就能解密
  1. 解密后,可以看到请求包

常见问题

  • 如果碰到提示adb.exe: error: more than one device/emulator答:在使用adb命令时指定-s,例如adb -s 127.0.0.1:5555 shell

  • 为什么要端口转发27042和27043答: Frida 是一个用于动态代码注入的调试工具,常使用端口 27042 与设备通信。通过端口转发,可以在电脑上运行的 Frida 客户端与设备上的 Frida 服务进行通信。