盼之代售decode__1174,ssxmod_itna和sign算法分析
·
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实现的效果吧
更多推荐


所有评论(0)