app逆向实战:某瓣7.18.0版本_sig参数抓包与破解

本篇博客旨在记录学习过程,不可用于商用等其它途径

入口

小组里面全部讨论数据列表
在这里插入图片描述

抓包

根据抓包结果,_sig参数是动态生成的,需要破解
在这里插入图片描述

查克

使用PKID查壳工具发现app并没有加固
在这里插入图片描述

参数源码定位

使用jadx打开apk,全局搜索_sig参数,下图是搜索结果
在这里插入图片描述
这个参数使用的地方不多,仔细观察找到具有赋值作用的代码行并逐个进去观察,根据RequestFormBody_ts_sig确定这是具体加密位置
在这里插入图片描述

源码分析

接下来找到a2.first怎么来的,看下图确定a2是通过ApiSignatureHelper.a(request)得到的,双击a进入它的具体实现代码
在这里插入图片描述
大家看下图,实际调用是第一个a,不过它重载了另一个a方法,这个才是具体的加密位置
在这里插入图片描述
第一个a传递的三个参数分别是:
request.url().toString():请求url
request.method():请求方式
header:请求头的Authorization参数,如果有则取前七个字符
其实在抓包时就能知道这三个的内容了,所以这点不难
在这里插入图片描述

第二个a直接看到最后一行,最后返回了new Pair<>(HMACHash1.a(str4, sb.toString())String.valueOf(currentTimeMillis))两个值,其中第二个值是时间戳,对应上_ts,所以_sig是通过new Pair<>(HMACHash1.a(str4, sb.toString())得到的
把代码修整一下方便阅读,其中StringPool.AMPERSAND就是&,可以知道加密文本就是对url, methood, authorization三个参数与时间戳进行判断拼接处理,其中url截取的是路径,不包含后缀参数,按本案例来加密文本就是GET&%2Fapi%2Fv2%2Fgroup%2F721771%2Ftopics&1721737945

public static Pair<String, String> a(url, methood, authorization) {
   
   
    
<think>我们正在处理一个关于如何抓包分析高德地图网络请求的问题。根据引用,特别是引用[1]和引用[3],我们可以得到一些关键信息: 1. 引用[1]提到可以通过浏览器开发者工具抓包分析高德地图的后台数据接口,并模拟发送请求。 2. 引用[3]则详细说明了使用Fiddler抓包工具来捕获Android手机上的高德地图请求,包括设置代理和证书等步骤。 因此,我们可以分为两种情况:在电脑浏览器上抓包和在移动设备(如Android手机)上抓包。 ### 在电脑浏览器上抓包(使用开发者工具) 1. 打开浏览器(如Chrome)的开发者工具(通常按F12)。 2. 切换到“Network”(网络)选项卡。 3. 访问高德地图的网页版(如https://www.amap.com/)。 4. 在网页上进行操作(如搜索地点、规划路线等),此时开发者工具会记录所有网络请求。 5. 在请求列表中找到可能的数据接口,通常可以按类型(如XHR)过滤,或者根据URL中的关键字(如包含“search”、“route”等)来识别。 6. 分析请求的URL、参数、响应数据等。 ### 在Android手机上抓包(使用Fiddler) 1. 在电脑上安装Fiddler并配置允许远程连接: - 打开Fiddler,进入Tools > Options > Connections,勾选“Allow remote computers to connect”,并记住端口号(默认为8888)。 - 重启Fiddler使设置生效。 2. 确保手机和电脑在同一局域网下。 3. 在手机上设置代理: - 进入Wi-Fi设置,修改当前连接的网络的代理为手动,输入电脑的IP地址和Fiddler的端口(如8888)。 4. 在手机上安装Fiddler的根证书以便捕获HTTPS请求: - 在手机浏览器中访问`http://<电脑IP>:8888`,下载Fiddler根证书(如FiddlerRoot.cer)。 - 在手机设置中安装该证书(具体路径因手机而异,通常在“设置”->“安全”->“加密凭据”->“安装证书”)。 5. 打开高德地图App进行操作,Fiddler会捕获所有请求。 6. 分析捕获的请求,找到高德地图的API请求。 ### 注意事项 - 高德地图的接口可能会有加密或验证,直接模拟请求可能需要处理一些参数(如token、签名等)。 - 抓包工具捕获的数据量可能很大,需要根据域名(如*.amap.com)或URL特征过滤。 - 高德地图的API文档可能不公开,因此抓包分析是逆向其接口的一种方法。 §§相关问题§§ 1. 如何解析高德地图API返回的加密数据? 2. 如何模拟高德地图的请求参数(如签名)? 3. 除了Fiddler,还有哪些工具可以用于移动端抓包?</think>### 如何抓包分析高德地图的网络请求 #### 一、浏览器端抓包(PC网页版) 1. **打开开发者工具** - 访问高德地图官网(https://www.amap.com/) - 按 `F12` 或右键选择"检查"打开开发者工具 - 切换到 **Network(网络)** 选项卡 2. **捕获请求** ```mermaid graph LR A[执行地图操作] --> B[搜索地点/规划路线] B --> C[网络请求列表实时显示] C --> D[筛选XHR/JS请求] D --> E[分析amap.com域名请求] ``` 3. **关键分析点** - 过滤关键词:`search`(搜索)、`route`(路线)、`poi`(兴趣点) - 查看请求参数:经纬度坐标、搜索关键词、cookie信息 - 分析响应格式:通常为JSON数据,包含经纬度/路线点[^1] #### 二、移动端抓包Android/iOS) 1. **使用Fiddler工具** - 安装Fiddler并启用HTTPS解密(Tools > Options > HTTPS) - 勾选 `Decrypt HTTPS traffic` 并信任证书 - 记录电脑IP地址(cmd执行 `ipconfig`) 2. **手机配置** ```mermaid graph TB A[手机连接电脑同WiFi] --> B[设置手动代理] B --> C[输入电脑IP和端口8888] C --> D[浏览器访问 http://<电脑IP>:8888] D --> E[下载安装Fiddler证书] ``` 3. **捕获高德请求** - 打开高德地图App执行操作(搜索/导航) - 在Fiddler中过滤 `amap.com` 域名请求 - 重点关注包含 `weapi` 或 `restapi` 的接口[^3] #### 三、关键接口分析(示例) 1. **地点搜索接口** ``` https://restapi.amap.com/v5/place/text?keywords=北京&types=商务写字楼&key=<用户密钥> ``` - 参数说明:`keywords`(关键词)、`types`(分类)、`key`(开发者密钥) 2. **路线规划接口** ``` https://restapi.amap.com/v3/direction/driving?origin=116.4,39.9&destination=116.5,39.95&key=<用户密钥> ``` - 参数说明:`origin/destination`(起终点经纬度) 3. **数据特征** - 响应为JSON格式,包含 `location`(经纬度)、`paths`(路线点) - 需注意接口签名验证(如 `sig` 参数)[^1] #### 四、注意事项 1. **法律合规性** - 仅用于学习目的,勿频繁请求(可能触发反爬机制) - 商用需申请高德开放平台API(https://lbs.amap.com/) 2. **数据加密** - 部分核心数据可能使用Protobuf二进制传输 - 可尝试使用 `protoc` 工具解码[^2] 3. **替代方案** - 直接使用高德开放平台API(每日3,000次免费调用) - 通过JS API Demo逆向接口(官网示例页抓包)[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九月镇灵将

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值