url = aHR0cHM6Ly93d3cucHpkcy5jb20vZ29vZHNMaXN0LzcvNg==

仅供学习使用,如有侵权,联系删除文章

来到这个网站,打开控制台进行抓包,找到需要的数据包这里观察发现请求头中,有3个参数需要解决然后请求载荷里面有一个decode__1174,以及cookie里面的ssxmod_itna和ssxmod_itna2

这里先看这个decode__1174参数,这个参数和那个雪球网的那个md5__1038是一样的生成逻辑,可以参考一下我之前的那个文章点击此处前往,区别就是传入的参数不同。

然后是请求头里面的3个参数,这个直接全局搜索就可以定位到了往上面看一下d(c.params),进入这个d方法最后会来到这里这三个值的生成逻辑就在这个控制流里面一个时间戳,一个随机值,sign就是拼接请求参数后MD5,这个直接扣代码就可以了

接下来看一下这个cookie里面的ssxmod_itna,这里直接hook

(function () {
    'use strict';
    var cookieTemp = '';
    Object.defineProperty(document, 'cookie', {
        set: function (val) {
            debuging;
            console.log('Hook捕获到cookie设置->', val);
            cookieTemp = val;
            return val;
        },
        get: function () {
            return cookieTemp;
        },
    });
})();

这里断住后往前面跟一下这个ssxmod_itna和ssxmod_itna2的生成逻辑就在这里,需要注意的是这里我对这个文件做了反混淆,这个在前面的文章中也有说明。

找到位置后,剩下的就是扣代码了,这个也没什么好说的

如果是补环境的话,这个代码不能格式化,然后下面是需要的环境信息

// 3个环境数组
let ic = [
    data01,
    // var j4 = "websdk-" + iG;  iG = "2.3.16d"
    "websdk-2.3.16d",
    // 时间戳
    ia,
    // 开始push 一个0 后面 ++
    3,
    // window里面的一些方法原型运算
    "1|15",
    // navigator.language
    "zh-CN",
    new Date()["getTimezoneOffset"](),
    // window里面的方法
    "16705151|12791",
    // screen 属性
    "1536|960|1536|246|0|0|1538|962|1536|912|0|0",
    // window["hasOwnProperty"] && window["hasOwnProperty"]("history") ? window["history"]["length"] : -1
    2,
    // navigator.platform
    "Win32",
    // navigator.hardwareConcurrency
    16,
    // canvas指纹里面的设备信息
    "ANGLE (Intel, Intel(R) Iris(R) Xe Graphics (0x0000A7A0) Direct3D11 vs_5_0 ps_5_0, D3D11)|Google Inc. (Intel)",
    // screen 属性  screen["colorDepth"] + "|" + screen["pixelDepth"];
    "24|24",
    // navigator.oscpu || 0
    0,
    //  window["hasOwnProperty"]("ApplePayError") << 1, Ps |= window["hasOwnProperty"]("Bluetooth") << 2, Ps |= window["hasOwnProperty"]("BluetoothDevice") << 3, Ps |= window["hasOwnProperty"]("BluetoothUUID") << 4
    28,
    // navigator.plugins,navigator.mimeTypes 运算
    "5|1318940364",
    // canvas 画图后 toDataURL 编码运算得到 具体调用的是iH方法
    2754309816,
    // navigator.userAgent 编码运算得到 具体调用的是iH方法
    2981263722,
    // document.hidden || document.mozHidden ? 0 : 1
    1,
    // ic["push"](0) 直接push一个0
    0,
    // window["screen"]["availWidth"] - window["outerWidth"] < 10 | 0;
    1,
    // iB(true) 调用iB方法传入true获取
    0
]
let iI = [
    416,
    "Google Inc.",
    8,
    "-1|0|0|0|0",
    3726056879
]
let iw = [
    599647252,
    0,
    29
]

需要注意的是cookie中,除了这两个值,还需要一些值

这些值,都可以通过hook找到生成的位置,然后这个acw_tc是前面请求一个html页面返回的

最后看一下纯python实现的效果吧

更多推荐