3. 某乎x-zse-96的jsvmp纯算分析

3. 某乎x-zse-96的jsvmp纯算分析
最新回答
怕黑却很晚睡的菇凉安好

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)。

    通过打印日志辅助分析,理解加密流程。好销