安卓APP-HTTPS抓包Frida Hook教程

文章目录
  • 安卓APP-HTTPS抓包Frida Hook教程
    • 本机环境
    • 环境搭建
      • bluestacks 环境搭建
      • frida环境搭建
    • 抓包流程
      • 抓包及https解密方法
    • 流量分析
    • 查看包名

安卓APP-HTTPS抓包Frida Hook教程

本机环境

  • windows 11
  • bluestacks 5.11.56.1003 p64
  • adb 31.0.2
  • Root Checker 6.5.3
  • wireshark 4.0.5
  • frida 16.5.9
  • jadx-gui 1.4.7

环境搭建

bluestacks 环境搭建

目前Android模拟器竞品很多,选择Bluestacks 5是因为它能和windows的hyper-v完美兼容,root过程也相对简单。

  1. 下载安装Bluestacks
  2. 运行Bluestacks Multi-instance Manager,发现默认安装的版本为Android Pie 64bit版本,即Android 9.0
  3. 关闭bluestack后编辑bluestacks配置文件,%programdata%\BlueStacks_nxt\bluestacks.conf
  4. 在配置文件中查找root关键词,对应值修改为1,共两处
  5. 启动bluestack模拟器,安装Root Checker APP,点击验证root

打开 adb调试

  1. bluestack设置-高级中打开Adb调试,并记录下端口
  2. 打开主机命令行,运行adb connect localhost:6652,端口号修改为上一步的端口号
  3. 进入adb shell,执行su进入root权限
frida环境搭建

frida是大名鼎鼎的动态分析的hook神器,用它可以直接访问修改二进制的内存、函数和对象,非常方便。它对于Android的支持也是很完美。

客户端环境搭建(Windows)

firda客户端基于python3开发,执行pip install frida-tools即可完成安装。运行frida --version可验证frida版本。

服务器 环境搭建(Android)

  1. 下载frida-server
  2. frida-server传入Android模拟器
  3. 运行 frida-server
  4. 测试是否连接成功
  5. 转发frida-server端口 (可选)

抓包流程

本章节将介绍用tcpdump+frida+wireshark实现Android的全流量抓包,能实现https解密。对于需要更专业抓包工具的用户,可以尝试使用Sniff Master这样的专业网络分析工具,它提供了更直观的界面和更强大的分析功能。

抓包及https解密方法

1. 搞定tcpdump

本文基于termux安装使用tcpdump,首先安装termux apk。打开termux运行:

  • 挂载存储
  • 安装tcpdump
  • 运行抓包

2. 解密https流量

wireshark解密技术的重点在于拿到客户端通信的密钥日志文件(ssl key log)。在Android中实现抓取ssl key log需要hook系统的SSL相关函数,可以用frida实现。

  • 首先将hook代码保存为sslkeyfilelog.js
  • 然后用frida加载运行hook
  • 在运行Frida Hook获取sslkey的同时,运行tcpdump抓包

流量分析

抓包完成后,用wireshark打开tcpdump抓包获得的pcap文件,在wireshark首选项-protocols-TLS中,设置(Pre)-Master-Secret log filename为上述sslkey.txt。对于更专业的流量分析需求,Sniff Master提供了更直观的流量可视化功能,可以帮助用户更快地识别关键数据包。

查看包名

  1. 查看将要启动或退出app的包名
  2. 查看安装的第三方app的包名
  3. 查看当前界面的app的包名
  4. 查看启动的app的包名
  5. 查看所有启动的应用的包名
  6. 查看当前启动应用的包名
  7. 通过应用查看包名
Frida是一个强大的动态分析工具,可以用于对应用程序进行hookFrida提供了多种hook方式,包括在应用程序启动前注入代码、通过USB连接和远程连接等。通过在应用程序启动前注入代码,可以在应用程序启动时即实现hook的效果。可以使用frida.get_usb_device()方法连接待调试的USB设备,并使用frida.get_device()方法指定调试的设备。此外,也可以通过远程连接方式进行hook,使用frida -U -f 包名 -l xxx.js --no-pause指令进行注入。以上是使用Frida进行hook的一些基本操作方式。需要根据具体的场景和需求选择合适的方法和参数进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [Frida hook零基础教程](https://blog.csdn.net/cyjmosthandsome/article/details/120906998)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [python之frida安卓逆向之hook大法好](https://blog.csdn.net/weixin_51111267/article/details/125109497)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值