目标网站:aHR0cHM6Ly9tZWlzaGkubWVpdHVhbi5jb20vaS8=
目标加密参数
a1代表的是版本号,这里是1.0的版本
JS文件定位
定位到后缀为H5guard.js的文件,把代码抠出来放到编辑器上
补环境
运行发现会报错,需要补一下环境
粗略补一下补环境,再运行没有报错,没问题了
const jsdom = require("jsdom");
const { JSDOM } = jsdom;
const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`);
window = dom.window;
document = window.document;
XMLHttpRequest = window.XMLHttpRequest;
需要改写一下两个方法赋为全局方法,
传参分析
分析du这个方法,k2和k3来自cookie,其他参数可以照搬进来,时间戳改一下
运行正常生成我们需要的参数
然后再到gM这个方法,需要传参的地方标出来了,怎么组合的自行摸索
再运行发现会在location这里报错,把location补全了
location = {
hash: "",
host: "meishi.meituan.com",
hostname: "meishi.meituan.com",
href: "https://meishi.meituan.com/i/",
origin: "https://meishi.meituan.com",
pathname: "/i/",
port: "",
protocol: "https:",
}
再运行发现报错点在 document[b(255)][b(145)](";")
这里,这里其实就是取document的cookie,我们直接自己定义一个cookie变量,把document[b(255)]
全部替换为cookie
再运行发现还是少了一些值返回来
全局搜索g0,把hH = g0
改为hH = window.g0
其中window.g0的值是上叙du这个方法生成的,补完后运行,正常生成mtgsig,其中a7的值为com.sankuai.meishi.fe.i
测试采集数据
编写好脚本,正常采集,打完收工