news 2026/6/10 13:02:22

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
某当劳请求头 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...

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

QuTiP量子计算工具包3步快速搭建指南:从入门到精通

QuTiP量子计算工具包3步快速搭建指南:从入门到精通 【免费下载链接】qutip QuTiP: Quantum Toolbox in Python 项目地址: https://gitcode.com/gh_mirrors/qu/qutip 作为量子计算领域的Python利器,QuTiP量子工具包为量子态模拟、算法开发和可视化…

作者头像 李华
网站建设 2026/6/4 1:47:51

7、Unix 系统上 Samba 安装与配置指南

Unix 系统上 Samba 安装与配置指南 1. 基本 Samba 配置文件 在启动 Samba 之前,需要为其创建一个配置文件。Samba 配置的关键是 smb.conf 文件,它可以非常简单,也可以极其复杂。为了测试服务器软件,可以使用以下文件: [global]workgroup = GARDEN [test]comment = F…

作者头像 李华
网站建设 2026/6/10 10:33:01

安全至上!合同系统智能化为企业保驾护航

合同系统智能化,为企业合同管理上把安全锁 在当今竞争激烈的商业环境中,企业合同管理的重要性不言而喻。合同是企业与合作伙伴、客户之间的法律依据,涉及到企业的核心利益。然而,传统的合同管理方式往往存在诸多问题,…

作者头像 李华
网站建设 2026/6/10 10:38:31

怎样快速配置网盘下载工具:新手完整教程

网盘直链下载助手是一款免费开源的浏览器扩展程序,专门用于获取百度网盘、阿里云盘等主流网盘文件的真实下载地址。通过将受限制的网盘链接转换为直接下载地址,用户可以配合专业下载工具实现高速下载,无需安装网盘客户端即可轻松获取文件。 【…

作者头像 李华
网站建设 2026/6/10 10:41:53

EmotiVoice合规性设计符合中国监管要求

EmotiVoice:在创新与合规之间构建中文语音合成新范式 在虚拟主播直播带货、AI客服温情回应、有声书自动配音的今天,语音合成技术早已不再是实验室里的冷门研究,而是渗透进日常生活的“声音基础设施”。尤其是具备情感表达能力的TTS系统&#…

作者头像 李华
网站建设 2026/6/10 7:20:18

天若OCR本地版:零基础也能上手的离线文字识别神器

还在为截图中的文字无法复制而烦恼吗?🤔 想要快速提取图片中的文字内容却不想依赖网络?天若OCR本地版就是你一直在寻找的完美解决方案!这款基于Chinese-lite和PaddleOCR双引擎的离线工具,让文字识别变得简单又安全。 【…

作者头像 李华