h5 mtgsig1.1学习

前言

只作学习研究,禁止用于非法用途,否则后果自负,如有侵权,请告知删除,谢谢!

网址: aHR0cHM6Ly9tZWlzaGkubWVpdHVhbi5jb20vaS8=

node环境肯定要有的
分析过程就不说了 其他人的文章都写的有大同小异
刷新页面 找到这个负责生成的js文件down下来
在这里插入图片描述
创建npm项目 安装依赖 npm init
jsdom不说了肯定要有的 npm install jsdom
在这里插入图片描述
搭建好如图 H5Guard.js一共6000多行代码(index.js忽略 RPC调用)
直接运行 开始补环境node H5Guard.js
在这里插入图片描述
最基础的架子 剩下的缺啥补啥就行了 从window拿或者自己构造

const { JSDOM } = require('jsdom');
const dom = new JSDOM(`<!DOCTYPE html></html>`, {
    url: '填url'
});

window = dom.window

补完后来到网页看看后续要做的事 控制台可以打印一下这个方法 这个就是生成mtgsig的方法(分析别的文章都有 不在赘述) 调用sign方法即可生成 返回的是一个Promise

在这里插入图片描述
注意其中是有init和initWithKey方法的 应该是要先进行初始化的
先不使用init直接运行测试一下

const { H5guard } = window;
if (H5guard) {
    const mtgsig = H5guard.sign({});
    console.log(mtgsig);
} else {
    console.log('H5guard 加载失败')
}

注意这里自己生成的a3是时间戳+字符串形式 而正常的只是字符串

在这里插入图片描述
可以生成 但是应该是要进行init的

找到启动器
在这里插入图片描述
在这里插入图片描述
照抄下来 运行没问题

const { H5guard } = window;
if (H5guard) {
	H5guard.initWithKey({...});
    const mtgsig = H5guard.sign({});
    console.log(mtgsig);
} else {
    console.log('H5guard 加载失败')
}

然后就剩下sign方法的入参了 直接说结果 找到这里在这里打断点然后浏览页面就会进入断点 就是文件最后面一大堆switch case的那个方法 圈出来的即为入参
在这里插入图片描述

然后就是测试了 我这里用的java和node rpc调用 node负责生成mtgsig java负责运行(为什么不用py 因为习惯用java了)
代码就不贴了 注意cookie和header能补全就补全
但是跑出来都是空数据 不知道什么情况还得分析
在这里插入图片描述
一些分析
mtgsig的a3的值和cookie中WEBDFPID的值是完全相同的 web指纹
可以看到直接生成的a3是时间戳+字符串形式 而正常的a3是字符串

重新换了个目标网址 发现是可以正常请求获取数据的
aHR0cHM6Ly9oNS53YWltYWkubWVpdHVhbi5jb20vd2FpbWFpL21pbmRleC9ob21lP3R5cGU9bWFpbl9wYWdl
如图

在这里插入图片描述
在这里插入图片描述
再用easyexcel导出 完美
在这里插入图片描述

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值