某麦网apk出票接口加密参数分析(一)

文章介绍了如何分析某麦网apk的抢票接口加密参数,通过抓包、反编译和使用fridahook工具,发现加密关键在于InnerSignImpl类的getUnifiedSign方法,成功模拟生成订单所需的加密参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

某麦网apk抢票接口加密参数分析(一)

当下的一些火爆活动,如音乐节、演唱会等需要购买门票的活动,常常会引发一些网络抢票软件的出现。

而某麦网也不例外,很多人使用抢票软件来抢购某些活动的门票。

为了防止这种情况的出现,某麦网增加了接口加密参数,让抢票软件无法直接调用网站接口,从而保证正常用户的购票权益。

那么下面我将介绍某麦网apk抢票接口加密参数的分析过程,希望对大家有所帮助。

app界面如下:
在这里插入图片描述

一、抓包分析

首先我们对该app进行抓包,发现普通的抓包方式根本抓不到包,于是另辟奇径。

因为某麦网也是阿里旗下的产品,于是我转念一想,有没有可能和某宝某鱼一样走的是自己的协议,于是我首先反编译了app。

发现确实是存在SwitchConfig这个类的,于是我使用frida hook了它的返回值为false

奇迹发生了,果然和我猜想的一样,可以正常抓包了(我使用的工具是fiddler)

既然能够抓包了 那么下面分析起来就简单多了

二、订单生成接口加密参数分析

在这里插入图片描述
下面我们来具体分析订单生成接口的加密参数

首先我们抓个包,发现订单生成的api为mtop.trade.order.build

有以下几个加密参数比较可疑:

x-sign、x-sgext、x-mini-wua

于是我就在反编译后全局搜索x-sign

找到了几个可疑的地方,如下

于是用frida进行调试,一步步追堆栈,发现真正的加密位置在InnerSignImpl这个类中的getUnifiedSign方法

下面附上具体的frida hook代码

InnerSignImpl.getUnifiedSign.implementation = function (a, b, c, d, e) {
    console.log("===================================================================")
    console.log(a)
    console.log(b)
    console.log(c)
    console.log(d)
    console.log(e)
    var result = this.getUnifiedSign(a, b, c, d, e)
    console.log(result)
    showStacks()
    console.log("===================================================================")
    return result
}

然后将这段js代码注入到我们的app内,发现输出的参数正好就是我们抓包时看到的那几个加密参数

那这就简单了,我们只需要主动调用这个函数,将具体的参数传进去不就能模拟生成订单了吗

因为这边是主要为了分析,所以就不考虑还原算法,那么现在的当务之急就是找到getUnifiedSign这五个参数的生成逻辑了

分析发现前两个参数是hashmap,后面三个分别是string、string、boolean,因此重点就是如何构建前两个hashmap

具体的构造过程就不发出来了,难度不大,然后我们将这自己构造的五个参数传入getUnifiedSign函数,并且主动调用,

发现确实传回来了请求头中的几个加密参数

那这就是某麦网app构造订单的请求接口加密分析,后面再讲讲订单生成的加密接口参数分析,敬请期待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值