首页 > 其他分享 >麦当劳app之sign逆向分析

麦当劳app之sign逆向分析

时间:2024-09-16 19:51:01浏览次数:9  
标签:nonce cn timestamp app sign 麦当劳 str md5

1、前言

今天继续研究麦当劳app的逆向算法,该文章仅用于逆向技术学习研究使用。抓包过程中发现请求参数sign为加密参数,如下图:

0cef139526ca45c5a0c481a845cc8b72.png

2、sign参数猜想 

sign:10b0ddb1daa077580aba33709cf73cf7

sign.length = 32

大概率猜测为md5加密(是否魔改?)

3、frida-trace跟踪“CC_MD5”函数     

        frida这个工具真是利器,对于简单的算法逆向很友好,在使用md5函数追踪的过程中,工具的配置和使用教程可看上一篇内容酷狗概念版signature逆向

        在终端中查找刚刚生成的sign值“10b0ddb1daa077580aba33709cf73cf7”,搜索到了对应匹配的值,说明sign参数就是普通的md5加密,且没有经过魔改。加密参数已经在终端中输出:

之前的图,不知道为啥挂掉了,只好重新补图md5值不一样了,因为nonce和st变了

7afae65d286541abbbc06a3137cf7b53.png

1858fc5c323a48609a4837023f6bed35.png 

 

4、 md5参数分析

ct=101

#language=cn

#nonce=1726279279083661066(毫秒的 Unix 时间戳)

#st=1726279279(Unix 时间戳)

#token=49c2e4a8bda81b5af0f61901c31d79411a0097d2(多次刷新:固定)

#v=6.0.89.3(版本号)

#dayPartCode=1

#isPromoter=0

#orderType=1

#storeCode=1450102(大概率是区分城市编码code)

#key=1bf5f332-aeab-4ef2-aea8-016c88c5e520

这里为了方便大家阅览,进行了换行处理

上述参数分析结束,那么这个算法也就成型了

5、运行结果

b234b1c13f3044328ca9784b94dd1a72.png

JS代码

const md5 = require('md5')

function sign(timestamp,nonce) {
    var str = 'ct=101#language=cn#nonce=' + nonce + '#st=' + timestamp + '#token=49c2e4a8bda81b5af0f61901c31d79411a0097d2#v=6.0.89.3#beCode=345031981#dayPartCode=4#isPromoter=0#orderType=2#storeCode=3450319#key=1bf5f332-aeab-4ef2-aea8-016c88c5e520'
    return md5(str)
}

  Python代码 

import requests
from datetime import datetime
import execjs
cookies = {
    'JSESSIONID': '956FC90A95A8B1A3EF854B87AEAB6167',
}
# 获取当前时间
now = datetime.now()
# 转换为时间戳
timestamp = now.timestamp()
nonce = str(timestamp).split('.')[0] + str(timestamp).split('.')[1]
sign = execjs.compile(open('./encrypt.js').read()).call("sign",int(timestamp),nonce)
headers = {
    'Host': 'api.mcd.cn',
    'language': 'cn',
    'User-Agent': 'McdApp (iOS)',
    'd': 'BuaY+YL+y2PlYF4QO28EDsTjbr9o8aS3gwMfoe7lv4WSAiMCaQxmQ0e/uTYr7xf6p6WxivJ76vA61Len8MIEExw==',
    'tid': '00003TuN',
    'sv': 'v3',
    'biz_from': '1006',
    'biz_scenario': '600',
    'v': '6.0.89.3',
    'ct': '101',
    'nonce': nonce,
    'sign': sign,
    'token': '49c2e4a8bda81b5af0f61901c31d79411a0097d2',
    'X-B3-TraceId': '67A235D631DE46A388343F15D267074B',
    'Accept-Language': 'zh-Hans-CN;q=1',
    'Accept': '*/*',
    'Content-Type': 'application/json; charset=utf-8',
    'st': str(int(timestamp)),
    'X-B3-SpanId': '9B0595C8C4924EE6',
}

params = {
    'beCode': '345031981',
    'dayPartCode': '4',
    'isPromoter': '0',
    'orderType': '2',
    'storeCode': '3450319',
}

response = requests.get('https://api.mcd.cn/bff/spc/menu', params=params, cookies=cookies, headers=headers)
print(response.text)

 

 

 

标签:nonce,cn,timestamp,app,sign,麦当劳,str,md5
From: https://blog.csdn.net/weixin_57775169/article/details/142250695

相关文章

  • java+vue计算机毕设大学生掌上校园app【源码+开题+论文+程序】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着移动互联网技术的飞速发展,智能手机已成为大学生日常生活中不可或缺的一部分。在信息化时代背景下,高校校园管理与学生服务正逐步向数字化、智能化......
  • 导购APP佣金模式的风险控制与合规性
    导购APP佣金模式的风险控制与合规性大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!随着电商和导购平台的发展,佣金模式已经成为导购APP的重要盈利手段之一。然而,这种模式也带来了不少风险和合规性问题。如果管理不当,不仅会影响用户体验,还可能引......
  • 安卓玩机工具-----无需root权限 卸载 禁用 删除当前机型app应用 ADB玩机工具
       ADB玩机工具                   ADBAppControl是很实用的安卓手机应用管理工具,无需root权限,通过usb连接电脑后,可以很方便的进行应用程序安装与卸载,还支持提取手机应用apk文件到电脑上,此外还有手机系统垃圾清理、上传文件等,功......
  • Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
    在线客服系统是现代企业与客户沟通的重要工具,它不仅能够提升客户满意度,还能有效提高企业的工作效率。本文将详细介绍在线客服系统的源码开发搭建过程,包括需求分析、技术选型、系统架构设计、关键模块实现、测试与优化等各个环节,并辅以代码实例,帮助读者深入理解并实践。......
  • 159.251 - Software Design and Construction
    MasseyUniversity159.251-SoftwareDesignandConstructionAssignment1DeadlineandLateSubmissionPenaltiesYoumustsubmityourfinalworkusingthestreamsubmissionsystemnolaterthan9October2024at11.59pm.Thepenaltyis20%deductedfromt......
  • JavaScript-apply、bind、call
    call、apply、bind作用是改变函数执行时的上下文,简而言之就是改变函数运行时的this指向区别 applyapply接受两个参数,第一个参数是this的指向,第二个参数是函数接受的参数,以数组的形式传改变this指向后原函数会立即执行,且此方法只是临时改变this指向一次当第一个参数......
  • 再vue中使用Vuetify 创建app项目
    vue:2Vuetify:2 与vue创建普通项目相同:https://www.cnblogs.com/yansans/p/18342267  vscode打开项目,在项目终端中运行vueaddvuetify@2之后会出现,选择默认即可(回车) 几个选项的解释:1.Vuetify2-ConfigureVueCLI(advanced)解释:这是一个高级选项,允许你对项目......
  • 自研electron32+vue3+arcoDesign桌面OS系统应用-源码版
    Vue3-ElectronWinOS:基于最新前端跨平台技术electron32.x整合高性能构建工具vite5.js搭建的一款高颜值桌面端os管理系统程序。整个项目采用vue3setup语法糖编码开发,全新封装electron多窗口栅格引擎。【源码版】Electron32+Vue3+ArcoDesign桌面版os系统模板功能特性......
  • 【源码论文】基于小程序/安卓的在线预约挂号诊治平台uniapp-JAVA.VUE
      博主介绍:......
  • 【源码论文】基于小程序/安卓的大学生党务学习平台uniapp-JAVA.VUE
      博主介绍:......