2022-09-11 00:21:32
x-zse-96的jsvmp纯算分析总结
定位分析:
通过搜索x-zse-96,逐步深入到tx、te、ed函数,最终定位到tp字符串和ty函数(MD5加密)。
加密过程涉及jsvmp,需进一步分析。
纯算分析步骤:
固定时间戳和随机数:避免因时间差导致请求被终止。
MD5处理:对输入字符串进行MD5加密,得到32位字符串。
字节数组转换:通过charCodeAt将MD5字符串转为字节数组。
数组扩展:使用unshift在数组前加0和随机值,形成34位数组。
数组填充:计算16 - (34 % 16) = 14,向34位数组push14个固定值,得到48位数组。
初始16位数组处理:
slice(0,16)得到初始16位数组。
与固定16位数组异或,得到新16位数组。
调亮激用全局r函数运算,得最终16位数组。
初始32位数组处理:
slice(16,48)得到初始32位数组。
结合前面16位数组,调用x函数运算,得最终32位数组。
字符串拼接与加密友键游:
拼接一个不变的64长度字符串,疑似魔改base64加密。
48位数组转换:
每3个数字运算得4个数,索引码表得4字符串,拼接。
48 % 3 = 16组运算,得64长度字符串。
拼接2.0_,得最终x-zse-96。
本地测试:
不带x-zse-96请求头返回403,携带正确值返回200。
测试代码使用requests和execjs库,编译JS文件生成x-zse-96。
总结:
需扎实基本功,熟悉函数调用方式(如apply、call、bind)。
通过打印日志辅助分析,理解加密流程。好销