news 2026/4/17 4:12:12

得物 APP 商品数据获取:私有协议分析与抓包实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
得物 APP 商品数据获取:私有协议分析与抓包实战

前言

在电商数据分析、价格监控与竞品调研场景中,得物 APP 的商品数据具备极高价值。但平台采用私有加密协议 + 证书绑定 + 签名校验三重防护,常规抓包工具无法直接获取明文数据。本文以学习与技术研究为目的,完整讲解得物 APP 抓包环境搭建、私有协议特征分析、关键接口定位与数据解析流程,同时明确合规边界,仅用于合法调试与学习。


一、环境准备与抓包前置条件

1. 硬件与工具选型

  • 电脑端:Windows/macOS
  • 抓包工具:Charles 4.6+、Fiddler Classic
  • 逆向辅助:Frida、Android Studio 模拟器(Root/Xposed 环境)
  • 设备:Android 7-11 真机 / 模拟器(高版本系统证书限制更严格)

2. 网络与证书配置

  1. 电脑与手机连接同一局域网,获取电脑内网 IP
  2. 安装 Charles 根证书到手机系统证书目录
  3. 关闭手机系统代理,改用 SocksDroid 全局代理绕过得物代理检测
  4. 开启 SSL Proxying,添加得物域名:*.dewu.comapp.dewu.com

3. 常见抓包失败原因

  • 证书未安装到系统证书,仅安装用户证书
  • APP 启用SSL Pinning,拒绝第三方证书
  • 得物检测到代理环境,直接屏蔽网络请求
  • 高版本 Android 限制用户证书,需 Root 写入系统证书

二、得物 APP 私有协议核心特征分析

1. 通信协议架构

  • 基础协议:HTTPS 1.1/HTTP2,端口 443
  • 数据格式:请求密文 + 响应密文,非标准 JSON 明文
  • 接口域名:https://app.dewu.comhttps://m.dewu.com

2. 关键加密参数

得物接口请求必须携带以下加密字段,缺一不可:

  • sign:请求参数签名,防篡改
  • data:业务参数整体加密
  • timestamp:时间戳,防重放
  • deviceId/imei:设备指纹,关联设备校验
  • token/cookie:用户身份校验

3. 加密算法特征

  • 对称加密:AES-128-CBC/PKCS7Padding
  • 哈希签名:MD5/SHA1 组合签名
  • 参数排序:按字典序拼接后加密
  • 密钥与偏移量:固定硬编码在客户端代码中,需逆向提取

4. 反爬机制

  • 代理检测:拒绝系统代理与 VPN 环境
  • 证书绑定:固定服务端证书,拒绝中间人证书
  • 频率限制:单设备单 IP 高频请求直接封禁
  • 设备指纹:基于 IMEI、AndroidID、MAC 地址生成唯一标识

三、抓包实战:定位商品核心接口

1. 流量过滤与接口筛选

  1. 启动 Charles,设置过滤规则仅保留dewu.com域名
  2. 打开得物 APP,进入商品详情页
  3. 在抓包工具中筛选 XHR/Fetch 请求,定位商品接口

2. 核心商品接口

  • 商品列表接口:/api/v1/product/search
  • 商品详情接口:/api/v1/product/detail
  • 价格实时接口:/api/v1/product/price
  • 库存接口:/api/v1/product/stock

3. 请求包结构分析

plaintext

POST https://app.dewu.com/api/v1/product/detail Headers: Content-Type: application/json User-Agent: DeWuApp/xxx token: xxxxx deviceId: xxxxx Body: { "data": "加密字符串", "sign": "签名", "timestamp": 1712345678901 }

4. 响应包特征

响应体为AES 加密字符串,无明文 JSON,需解密后获取:

  • 商品标题、价格、尺码
  • 销量、库存、发货地
  • 鉴定信息、图片链接

四、私有协议解密与参数逆向

1. 绕过 SSL Pinning

使用 Frida 脚本 Hook 证书校验函数,强制信任 Charles 证书:

javascript

运行

Java.perform(function(){ var TrustManagerImpl = Java.use('com.android.org.conscrypt.TrustManagerImpl'); TrustManagerImpl.verifyChain.implementation = function(){ return null; } })

2. 定位加密函数

  1. 反编译得物 APK,搜索AESencryptsign关键字
  2. 定位到com.dewu.common.security包下加密工具类
  3. 提取 AES 密钥、IV 偏移量、签名盐值

3. 签名生成逻辑

  1. 业务参数按字典序排序拼接
  2. 拼接固定盐值 + 时间戳 + 设备 ID
  3. MD5 加密后转大写,生成 sign 参数

4. 数据加解密流程

  1. 请求:明文参数 → AES 加密 → 生成 sign → 发送请求
  2. 响应:密文数据 → AES 解密 → JSON 格式化 → 提取字段

五、Python 实现商品数据自动采集

核心代码逻辑

  1. 导入 AES 加密、MD5 签名库
  2. 配置固定密钥、IV、设备指纹
  3. 构造请求参数,生成 sign 与加密 data
  4. 发送 HTTPS 请求,解密响应数据
  5. 解析商品标题、价格、库存等字段

采集结果示例

json

{ "productId": "123456", "title": "Nike Air Force 1 纯白", "price": 799, "sizeList": ["40","41","42"], "stock": 128, "sales": 12560, "imgUrl": "https://xxx.dewu.com/xxx.jpg" }

六、合规声明与风险提示

  1. 本文仅用于网络安全学习与 APP 调试,禁止用于商业爬虫、批量采集、恶意攻击
  2. 得物 APP 用户协议明确禁止未经授权的数据抓取,违反将承担法律责任
  3. 大规模采集可能触犯《网络安全法》《数据安全法》,面临封禁与诉讼风险
  4. 合法获取数据请通过得物官方开放平台与 API 授权

七、总结

得物 APP 通过私有加密协议、SSL Pinning、设备指纹、签名校验构建了严密的数据防护体系。常规抓包无法获取数据,需结合 Frida 逆向、加解密分析才能完成数据解析。

学习本实战可掌握移动端 APP 协议分析、抓包调试、加密逆向的通用思路,但务必坚守合法合规底线,仅用于技术研究与自我学习。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 4:11:13

3分钟免费搞定:FigmaCN中文界面汉化完整指南

3分钟免费搞定:FigmaCN中文界面汉化完整指南 【免费下载链接】figmaCN 中文 Figma 插件,设计师人工翻译校验 项目地址: https://gitcode.com/gh_mirrors/fi/figmaCN 还在为Figma的英文界面感到困扰吗?专业术语看不懂,菜单选…

作者头像 李华
网站建设 2026/4/17 4:10:03

Snarkdown 性能优化实战:为什么它比传统解析器更快

Snarkdown 性能优化实战:为什么它比传统解析器更快 【免费下载链接】snarkdown :smirk_cat: A snarky 1kb Markdown parser written in JavaScript 项目地址: https://gitcode.com/gh_mirrors/sn/snarkdown Snarkdown 是一款轻量级的 Markdown 解析器&#x…

作者头像 李华
网站建设 2026/4/17 4:09:57

M920x黑苹果实战指南:从硬件解锁到完美macOS体验

M920x黑苹果实战指南:从硬件解锁到完美macOS体验 【免费下载链接】M920x-Hackintosh-EFI Hackintosh Opencore EFIs for M920x 项目地址: https://gitcode.com/gh_mirrors/m9/M920x-Hackintosh-EFI 你是否曾想过在联想M920x迷你主机上体验macOS的流畅与优雅&…

作者头像 李华
网站建设 2026/4/17 4:07:19

LeetCode热题100-每日温度

给定一个整数数组 temperatures ,表示每天的温度,返回一个数组 answer ,其中 answer[i] 是指对于第 i 天,下一个更高温度出现在几天后。如果气温在这之后都不会升高,请在该位置用 0 来代替。需要使用栈结构来找右边第一…

作者头像 李华
网站建设 2026/4/17 4:06:24

从Flask迁移到FastAPI:一个真实用户认证项目的重构笔记与性能对比

从Flask迁移到FastAPI:一个真实用户认证项目的重构笔记与性能对比 当我们的用户认证系统在Flask上运行三年后,响应时间开始出现不可预测的波动。某个周一早高峰,登录接口的P99延迟突然飙升至2.3秒——这个数字让我意识到,是时候重…

作者头像 李华
网站建设 2026/4/17 4:06:22

Universal ADB Driver:Windows 平台 Android 调试终极解决方案

Universal ADB Driver:Windows 平台 Android 调试终极解决方案 【免费下载链接】UniversalAdbDriver One size fits all Windows Drivers for Android Debug Bridge. 项目地址: https://gitcode.com/gh_mirrors/un/UniversalAdbDriver Universal ADB Driver …

作者头像 李华