当前位置: 首页 > news >正文

某当劳请求头 x-hmac-digest 签名算法逆向分析

0x0 前言

在之前的研究中,我们分析了该 App 的sign签名。但在进一步抓包过程中,发现 Headers 中的x-hmac-digest同样是请求成功的关键。若不还原此参数,直接重放请求会导致授权失败。本文将记录通过静态分析与动态调试还原该参数的过程。

0x1 静态分析:定位关键函数

通过抓包发现,请求头中包含x-hmac-digest字段。使用 IDA 对 App 进行反编译,全局搜索该字符串,定位到如下关键赋值代码:

通过代码可以看到,v28字典中存储了svx-mcd-gw-vx-hmac-digestauthorization。其中x-hmac-digest对应变量v26,而v26是由convertSignature:path:request:gmtTime:error:函数生成的。

深入追踪,最终定位到核心加密实现函数:

代码逻辑解读:

  • 调用了系统的CCHmac函数。

  • 第一个参数2u代表算法类型,通常对应HMAC-SHA256

  • v8v9分别是传入的KeyMessage

  • 最后将结果通过base64EncodedStringWithOptions:进行 Base64 编码。

0x2 动态调试:Hook 验证

为了验证分析是否正确,我们编写 Frida 脚本对MCDHTTPSignV4:hmacSHA256WithSecr相关方法进行 Hook,打印其入参和返回值。

Hook 输出分析:

  • arg2 (Key):QIpNjLtJALdcAEJPIxBMnLJv1BC2WdlovPHAKFQL

  • arg3 (Message): 这是一个拼接字符串,包含了 Method (GET)、Path (/bff/portal/home/index/user)、Query 参数、Token 以及 GMT 时间戳等。

  • Return Value:y9P3hlKEunuOmNaCWH3pc93UQ2lyxoarZeHGg8UDXUo=

这证实了x-hmac-digest就是由上述 Key 和拼接字符串经过 HMAC-SHA256 加密后再进行 Base64 编码得来的。

0x3 算法还原 (Python 实现)

运行结果显示,生成的digest与抓包数据完全一致。

0x4 深入溯源:固定 Key 的生成机制

在动态调试中,我们发现arg2 (Key)的值为QIpNjLtJALdcAEJPIxBMnLJv1BC2WdlovPHAKFQL且保持固定。为了搞清楚这个 Key 是如何产生的,我们回到 IDA 进一步检索。

1. 定位密钥生成函数

通过交叉引用,我们发现hmacS的密钥参数来自于v4XXX函数的返回值:

2. 揭秘硬编码逻辑

进入v4XXX函数内部,可以看到一段有趣的算法逻辑。它并非简单的字符串赋值,而是通过**循环异或(XOR)**操作生成的

在调试中发现,这个长度为 41 位的 Key 是固定的。为了防止被轻易识别,开发者在代码中对其进行了异或(XOR)混淆

3. 查找 Key 生成源头

代码中存在一个for循环,将字节数组byte_101BXXX的每一位与(i - 29)进行异或运算。

4. 提取内存数据

跳转到byte_101BXXX对应的内存地址,我们拿到了原始字节码:

原始数据流(部分):0xB2, 0xAD, 0x95, 0xA8, 0x8D, 0xA4, 0x9D...

http://www.jsqmd.com/news/109574/

相关文章:

  • SpiffWorkflow工作流引擎实战:精通Python BPMN自动化
  • 2025国产网络游戏好玩排行榜 热门作品带你体验多样乐趣 - 品牌排行榜
  • 图文排版天花板:Adobe InDesign 2025 安装步骤 高效排版指南:样式 + 自动化,效率翻倍
  • 2025年度生南瓜籽仁供应商推荐:原味生南瓜籽仁源头工厂实力 - mypinpai
  • MCP续证如何高效备考?(资深讲师亲授通关秘籍)
  • 视频硬字幕智能提取技术:突破水印与干扰文本的精准识别方案
  • MediaPipe Selfie Segmentation Web Worker性能优化实战:告别卡顿,实现60FPS流畅体验
  • 福建省厦门市自建房设计公司排行榜出炉!权威评测 + 真实案例,建房选对不踩坑 - 苏木2025
  • CompileFlow:阿里巴巴开源的高性能流程编排引擎深度解析
  • C++ map 全面解析:核心特性、用法与实战
  • 那年的雪,和落在别处的我们 - 杯酒
  • LOOT模组排序终极方案:告别天际模组冲突的完整指南
  • 《人月神话》关于项目评估的坑
  • 揭秘n8n端到端测试:从架构设计到实战优化的完整指南
  • Windows微信机器人终极指南:免费自动化助手从零到精通
  • AutoScreenshot智能截屏系统:从入门到精通的完整指南
  • 分布式同步技术如何重塑多设备协作体验?
  • 突破传统:WebGL全景图查看器如何重塑数字内容体验
  • Waifu Diffusion终极指南:快速上手AI动漫创作神器
  • 【AI工程师必看】:MCP AI-102模型更新带来哪些颠覆性变化?
  • 【权威发布】MCP认证有效期将至:如何在72小时内成功锁定考位?
  • 6000元笔记本怎么选:七彩虹将星X16 Pro实测,如何把钱花在刀刃上?
  • 息屏远程控制终极指南:让escrcpy成为你的手机隐形管家
  • AI Day直播 | 自动驾驶空间检索新范式SpatialRetrievalAD
  • 鲸鸿动能发布新中产全景图鉴:“人感营销”,如何真正触达人心?
  • 【MCP续证必看指南】:3大核心培训模块全解析,助你一次通过
  • FLORIS风电场仿真工具:专业级尾流模型完整解析与实战指南
  • 吾爱大神封神!AI 驱动 PDF 预览 + OCR 工具,小白也能秒上手
  • 复旦最新一篇DriveVGGT:面向自动驾驶,高效实现多相机4D重建
  • MCP续证倒计时:5天内完成考试预约的紧急操作手册(限时必读)