Frida Hook的简单使用

本文详细介绍了如何通过Frida工具动态分析Android应用的网络请求,特别是签名的生成过程。首先配置了抓包环境,通过Charles抓包获取请求URL和参数。接着对APK进行反编译,找到签名生成的相关代码,然后利用Frida进行动态hook,获取到签名的输入参数和密钥。最后,通过Python实现了签名的复现,成功模拟请求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0x01 环境

python3.6、pycharm、安卓反编译工具jadx、样本apk包、charles抓包工具、电脑安装adb(安卓调试桥)

python使用到的库:frida

一部root的安卓6.0手机:手机上安装frida-server

手机使用usb线连接电脑,且打开usb调试。使用adb的时候,选择授权该电脑。

0x02 抓包分析

配置代理

保证手机和电脑处于同一网络环境下,然后手机上设置电脑IP作为其代理IP。

查询电脑IP的方法:WIN+R打开运行->输入cmd->回车打开命令提示符->输入ipconfig,显示的内容中即有电脑IP信息。如:

… …
无线局域网适配器 WLAN:

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::1ea:ac16:a5f4:70dc%23
IPv4 地址 . . . . . . . . . . . . : 172.16.156.26
子网掩码 . . . . . . . . . . . . : 255.255.252.0
默认网关. . . . . . . . . . . . . : 172.16.156.1

则电脑IP为172.16.156.26。

手机上打开当前连接的WIFI(不同手机操作方法略有不同),修改网络->高级选项->代理->手动,代理服务器主机名填上面的172.16.156.26,端口为charles的默认端口8888

抓包

打开charles和手机,在样本apk中搜索。

拿到目标链接:

url:
https://api.xxxx.com/community/search/items/get?protocol=1&appKey=47cda90997074f10&start=0&versionCode=211&token=eed96c88-c110-4faa-bd9b-7fa6d6f0264a&key=%25E5%25A4%25A7%25E7%258E%258B&timestamp=1606190200165&count=20&channel=1002&type=3&sign=wUAXTQxOFolZP4FQuSXtZvtnn.E=

请求头:
Accept: application/json
Content-type: application/json
Host: api.xxxx.com
Connection: Keep-Alive
Cookie: acw_tc=ac11000116061900179143931e01610f6f99e840c7cae1c380c9a0a984caa7
Cookie2: $Version=1

返回内容:
{
    "rc": 0,
    "msgInfo": null,
    "errorInfo": null,
    "redirect": null,
    "redirectSign": null,
    "ccdVersion": null,
    "serverTime": null,
    "serAppIn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值