搞定环球度假区APP签名(Authorization signature)加密过程,实现自动抢票。

1、抓包

准备手机或者模拟器,抓包工具和过程就不介绍了,我用的Charles(习惯了)。如果手机端环境不容易建设也可以通过电脑端微信实现。这些文章有很多可以,不做赘述。

通过抓包发现每次请求头都需要参数:Authorization。这里的参数内容是加密的需要破解。

 2、反编译

(1)反编译小程序

我是通过把手机上的小程序包(.wxapkg结尾的文件)

借用一下这篇文章,写了各平台小程序包的所在路径。

微信小程序在Android、iOS、Windows、MacOS的文件存放路径 - 简书

如果你是mac os系统在上面文章中介绍的路径没有找到,试试下面这个路径:

/Users/{用户}/Library/Group Containers/5A4RE8SF68.com.tencent.xinWeChat/Library/Caches/xinWeChat/{用户hash}/WeApp/LocalCache/release/

我是用的wxappUnpacker直接执行脚本进行反编译。虽然已收费但是没办法。如果从PC端拿的小程序包,需要先解密在反编译。需要工具请联系本人邮箱:435047471@qq.com或关注公众号:程序员老惠(尚未完善)获取。

(2)反编译APP

这个过程就不多说了,随便找篇教程就能够实现,而且工具很全面。只是编译出来的加固代码确实很难理解。

3、逆向过程

每一个接口的调用都需要参数:Authorization,这个参数的构成是和企鹅的API网关基本一致的,所以我估计环球就是用的企鹅托管。有相关知识的伙伴可以很轻松的找到原理,实际主要获取到:apiAppSecret,apiAppkey问题也就基本解决了。

通过在小程序的反编译代码中查找:Authorization

参数的构成过程基本有个大概的梳理。这里需要获取变量y的处理流程。

接下来查找apiAppkey参数是如何获取的,通过接口get/sign查看到这里apiAppKey的内容与头部参数:Authorization里的hmac id不一致,存在加密处理。

全局搜索:get/sign找到加密的位置,没有去找apiAjppKey和apiAppSecret的解密流程进行分析,直接通过断点获取解密后的返回值,拿走。

然后是对字符串y的分析过程,有用过企鹅API网管的直接查看文档即可。通过上面代码的分析也基本很清晰了,主要是x-date时间戳、加密的参数体、请求方法。

最后是分析代码signature的加密过程,反编译的代码对应变量b。通过webpack逐个的摘各函数r、d等,注意函数之间的调用关系,保证运行没有问题。

分析结束可以直接通过node调用,也可以使用python调用js的方式。当然还可以python直接实现加密过程调用。

能够成功调用接口获取到商品列表信息。

如果你打算做抢票程序,上面的解密内容只是能调用接口。其中添加游客信息、登录都有加密参数,后面再逐个分析。 

各项工具及技术分析可邮件探讨:435047471@qq.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值