小红薯x-s算法最新补环境教程12-06更新(下)

在上一篇文章中已经讲了如何去定位x-s生成的位置,本篇文章就直接开始撸代码吧

如果没看过的话可以看:小红薯最新x-s算法分析12-06(x-s 56)(上)-CSDN博客

1、获取加密块代码

首先来到参数生成的位置,点击 F9 进入加密的位置

可以看见加密的代码就是在这一块,直接全扣就可以了

扣下来一共有两千多行,把调用的位置放在最下面尝试执行一下

javascript 复制代码
c = "/api/sns/web/v1/user_posted?用自己的"
i = undefined
res = window._webmsxyw(c, i)
console.log(res)

2、使用补环境框架

使用补环境框架,把代理挂上在代码的最上方运行

javascript 复制代码
function setProxy(proxyObjs) {
    for (let i = 0; i < proxyObjs.length; i++) {
        const handler = `{
          get: function(target, property, receiver) {
          if (property!="Math" && property!="isNaN"){
             if (target[property] && typeof target[property] !="string" &&  Object.keys(target[property]).length>3){
              }
              else{
            console.log("方法:", "get  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", target[property]);}}
            return target[property];
          },
          set: function(target, property, value, receiver) {
            console.log("方法:", "set  ", "对象:", "${proxyObjs[i]}", "  属性:", property, "  属性类型:", typeof property, ", 属性值:", value, ", 属性值类型:", typeof target[property]);
            return Reflect.set(...arguments);
          }
        }`;
        eval(`try {
            ${proxyObjs[i]};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        } catch (e) {
            ${proxyObjs[i]} = {};
            ${proxyObjs[i]} = new Proxy(${proxyObjs[i]}, ${handler});
        }`);
    }
}


window = {}
document = {}
navigator = {}
screen = {}
localStorage = {}
location = {}
history = {}

setProxy(['window', 'document', ' navigator', 'screen', 'localStorage', 'location', 'history'])

3、处理undefined (reading 'RegExp')

代码执行后发现报错 undefined (reading 'RegExp'),同时window也是undefined,

补充:

javascript 复制代码
window = global;
delete global;      // 删除 global,防止在后续代码中再次使用 global
delete Buffer;      // 浏览器中无 Buffer 防止环境污染

4、补充 createElement、documentElement

这个时候报错,看代理发现是缺了 document 下的 createElement

老样子继续补 documentElement

javascript 复制代码
document = {
    createElement: function createElement() {
    },
    documentElement: function documentElement() {
    },
}

5、处理 undefined (reading 'getContext')

报错 TypeError: Cannot read properties of undefined (reading 'getContext')

根据日志可看见最后一个调用的是 createElement,传参并打印一下看看做了什么

补上canvas,看看里面发生了什么

发现在 canvas 里面缺了一个 getContext,老样子直接补

再次执行发现已经没有报错了,接下来继续照着这个思路补就可以了

6、环境展示

根据前面的思路缺什么就去浏览器补什么,最终补出来长这样的:

7、生成结果展示

8、python运行结果展示

9、总结:

基本上按照这个思路慢慢补都是可以补全的,当然如果需要源码的话也可以私聊,如果有需要定制的话欢迎私信(白嫖怪勿扰,看着给就行)

相关推荐
Sylvia33.19 分钟前
LOL实时数据接入深度解析:从WebSocket到完整数据模型
java·网络·python·websocket·网络协议
梦想不只是梦与想20 分钟前
Web 服务器网关协议:ASGI 和 WSGI
服务器·python·fastapi
ai小陈3 小时前
PyTorch DataLoader数据加载性能排查:GPU利用率低的实操指南
人工智能·pytorch·python·深度学习·ai·gpu算力
2601_962299245 小时前
Azure python操作系统列表
python·操作系统·azure·虚拟机·存储配置文件
香芋芋圆6 小时前
AI 冲击内卷之下,普通前端如何破局?WebGIS—— 低门槛突围赛道
前端·javascript·人工智能·学习·职场发展
学术 学术 Fun6 小时前
如何用 API 与 Webhook 批量把图表图片转换成 VSDX
python·自动化·api·visio
INS_KF7 小时前
【编程笔记】成员函数中两个 const 的区别(const Data &getData() const;)
前端·javascript·笔记
2601_962100547 小时前
python包和模块的内容整理
python·模块·导入·虚拟环境·
宿6747 小时前
vue3-async
前端·javascript·vue.js
二进制漫游记7 小时前
FastAPI项目集成 Qdrant向量数据库+阿里云Embedding完整实战(工具封装+业务调用)
数据库·python·阿里云·embedding