密钥 = 到字节集 ("提取的16/24/32字节密钥" )IV = 到字节集 ("提取的16字节IV" ) 数据 = " {... }" 加密结果 = 加密数据 (数据, #AES_CBC, #PKCS7_PADDING, 密钥, IV )d参数 = 编码_BASE64编码 (加密结果 )调试输出 (d参数 ) 参数收集:收集浏览器环境信息(如userAgent、屏幕分辨率、插件列表等)。生成随机数(nonce)和时间戳。包含设备指纹信息(由SDK生成)。
数据序列化:将收集的参数转换为JSON字符串。
加密处理:使用AES-CBC模式加密JSON数据,密钥硬编码在SDK中(需从JS提取)。加密后的数据经过Base64编码生成d参数。
简单写了个代码
使用加解密对象库实现AES-CBC加密。
注意Padding方式(通常为PKCS7)。
密钥和IV需从JS代码中提取(搜索encrypt相关函数)。
注意事项:
需完整还原环境参数收集逻辑,否则易盾会判定为异常。
建议使用浏览器调试获取一次完整的加密数据,对比验证加密结果。
动态参数(如指纹)可能需要复用会话保持。
该加密主要用于反爬虫,完整逆向需深入分析混淆后的JS代码,建议结合网络抓包和调试跟踪关键函数。
|