Vishnu-tppr/Project-KillCode

GitHub: Vishnu-tppr/Project-KillCode

一款用于绕过 SkillRack 平台编程限制并集成多种 AI 模型自动求解编程题的 Tampermonkey 浏览器用户脚本。

Stars: 1 | Forks: 0

KillCode

# Anti-Cheat 绕过 适用于 [skillrack.com](https://skillrack.com) 的 Tampermonkey 用户脚本。它能够屏蔽标签页切换检测、恢复剪贴板功能、解决验证码问题,并使用你的 ChatGPT 账号生成代码解决方案 —— 无需 API key,完全免费。 **版本:** `5.0f` · **匹配:** `*.skillrack.com/*` ## 功能说明 | 功能 | 实现方式 | |---------|-----| | 标签页切换检测 | 伪造 `document.visibilityState` → 始终保持 `visible` | | 复制 / 粘贴 / 剪切 | 在 jQuery 处理程序运行前拦截剪贴板事件 | | 强制全屏 | 拦截 `requestFullscreen()`,伪造 `fullscreenElement` | | 多显示器检测 | 伪造 `screen.left`、`screen.top` 和 `screen.isExtended` | | 心跳 / 遥测数据 | 阻止发往监考端点的 XHR 和 Fetch 请求,并返回伪造的 200 状态码 | | ACE 编辑器限制 | 屏蔽 `bte` 命令注册,覆盖 `cs()` 差异检查 | | 拖放操作 | 移除所有元素的 `ondragstart`/`ondrop`/`onselectstart` 属性 | | 验证码 | 使用 Tesseract.js OCR 识别数学验证码图片(失败时自动重试) | | AI 解答 | 使用 7 种提供程序之一生成代码,并自动填入 ACE 编辑器 | | 自动求解器 | 全自动流程:验证码 → AI 求解 → 运行 → 跳转至下一题 | ## 安装说明 1. 安装 [Tampermonkey](https://www.tampermonkey.net/)(支持 Chrome/Firefox/Edge) 2. 点击 → **[安装脚本](https://raw.githubusercontent.com/Vishnu-tppr/skillrack-script/refs/heads/main/Anti-Cheat%20Bypass%205.0.user.js)** 3. Tampermonkey 将打开安装页面 —— 点击 **安装** 4. 打开 SkillRack。首次加载时需接受免责声明。 该脚本会自动从 GitHub 更新(`@updateURL` 已在头部设置)。 ## 通过 ChatGPT 免费使用 AI —— 无需 API key 这是使用本脚本的主要原因。OpenAI 对 API 访问收取约 $15/百万 token 的费用,而 ChatGPT 账户可以免费获得相同的计算能力。该脚本利用你的 ChatGPT OAuth token 直接调用 `chatgpt.com/backend-api/codex` —— 模型完全相同,但零成本。 它有两种运行模式。脚本会优先尝试模式 1,并自动回退: ``` Mode 1: GM_xmlhttpRequest → chatgpt.com/backend-api/codex (browser-only) ↓ 401 / 403 / network error Mode 2: http://127.0.0.1:10531/v1 (local npx openai-oauth proxy) ↓ proxy not running Error: "Sign in or start npx openai-oauth" ``` ### 设置(仅需浏览器,无需终端) **第 1 步 —— 安装“Sign in with ChatGPT”扩展程序** 此扩展程序会在浏览器层级拦截 OpenAI 的 OAuth 回调。无需服务器。 - Chrome:[Chrome 网上应用店](https://chromewebstore.google.com/detail/sign-in-with-chatgpt/odbgboachaefbbbdiffcefhpkekhfcna) - Firefox:[Firefox 附加组件](https://addons.mozilla.org/firefox/addon/sign-in-with-chatgpt/) - 或者从 `chrome-extension/` 目录加载已解压的扩展程序(开发者模式) 主机权限:仅限 `http://localhost:1455/*`。任何数据都不会离开你的设备。 **第 2 步 —— 登录**

Sign in with ChatGPT button

1. 打开 SkillRack → 点击右下角的 ⚙️ 图标 2. 设置 **AI Provider** → **ChatGPT (openai-oauth)** 3. 点击 **Sign in with ChatGPT** 4. 在 OpenAI 页面登录 → 扩展程序拦截回调 → 显示“Continue to skillrack.com” → 点击继续 5. Token 将作为 `oai_oauth_session` 保存在 `localStorage` 中 完成。无需终端,无需 API key。 **第 3 步 —— (可选)本地代理回退** 如果直接调用被阻止(例如 Cloudflare 拦截、token 过期等): ``` npx openai-oauth@latest ``` 将在 `127.0.0.1:10531/v1` 启动兼容 OpenAI 的 API 端点。可用模型取决于你的 ChatGPT 订阅计划:`gpt-5.6-terra`、`gpt-5.6-sol`、`gpt-5.5`、`gpt-5.4-mini`、`gpt-image-2`。 后台命令: ``` npx openai-oauth --detach # run in background npx openai-oauth status npx openai-oauth logs --follow npx openai-oauth stop npx openai-oauth login # sign in without starting server ``` ### OAuth 流程工作原理 ![openai-oauth package structure](https://static.pigsec.cn/wp-content/uploads/repos/cas/f9/f9a02b62e5037717434c17839f1ed9b7c13cd0d4ebfed041870e232f403af44c.png) ``` Script → OAuthLogin.initiateLogin() → PKCE auth URL → auth.openai.com ↓ User logs in ↓ OpenAI redirects → http://localhost:1455/auth/callback?code=...&state=... ↓ Extension (declarativeNetRequest) intercepts → chrome-extension://.../confirm.html ↓ User clicks "Continue to skillrack.com" ↓ Page reloads with ?code=...&state=...&oo2_cb=1 ↓ Script exchanges code → https://auth.openai.com/oauth/token via GM_xmlhttpRequest ↓ Token stored in localStorage → used as Bearer on chatgpt.com/backend-api/codex ``` ## 其他 AI 提供程序 | 提供程序 | 费用 | 备注 | |----------|------|-------| | **ChatGPT (openai-oauth)** | 免费 | 使用你自己的账号,无需密钥 | | **DuckDuckGo AI** | 免费 | 无需账号 | | **Google Gemini** | 免费额度 | 需要从 [AI Studio](https://aistudio.google.com/app/apikey) 获取 API key | | **OpenRouter** | 免费 + 付费 | 提供 300 多种模型,[获取密钥](https://openrouter.ai/keys) | | **G4F** | 免费 | 需要 [g4f.space](https://g4f.space) 账号 | | **OpenAI direct** | 付费 | 标准 API key | | **YuppBridge** | 自托管 | 通过 [YuppBridge](https://github.com/cloudWaddie/yuppbridge) 提供 200 多种模型 | ### DuckDuckGo(零配置) 将提供程序设置为 **DuckDuckGo AI**。选择一个模型。就这么简单。 可用模型包括:GPT-4o Mini、GPT-5 Mini、GPT-OSS 120B、Llama 4 Scout、Claude 3.5 Haiku、Mixtral Small 3。 ### OpenRouter 通过 API 动态获取模型列表。缓存时间为 6 小时。支持按名称搜索、仅筛选免费模型。默认模型:`google/gemini-2.0-flash:free`。回退模型:`openrouter/free`。 ## 设置面板 点击右下角的 ⚙️ 图标。所有设置都会持久化保存在 `localStorage` 中。 **绕过检测** | 设置 | 默认值 | |---------|---------| | 绕过标签页检测 | ✅ | | 绕过复制/粘贴限制 | ✅ | | 绕过全屏限制 | ✅ | | 绕过多显示器检测 | ✅ | | 阻止遥测数据 | ✅ | **编辑器** | 设置 | 默认值 | |---------|---------| | 拖放操作 | ✅ | | 文本选择 | ✅ | | 右键菜单 | ✅ | **验证码** | 设置 | 默认值 | |---------|---------| | 自动求解验证码 | ✅ | | 用户名(用于验证码解析) | 为空 | 如果你的用户名中包含 `+` 和数字(例如 `abcd123+21@xyz.com`),请设置此项。 **AI** | 设置 | 默认值 | |---------|---------| | 启用 AI 求解器 | ❌ | | 自动求解器 | ❌ | | 提供程序 | Gemini | ## 自动求解器 ⚠️ 实验性功能。 当同时启用 **AI Solver** 和 **Auto Solver** 时: 1. 等待验证码通过验证 2. 点击紫色的“🤖 AI Solution”按钮 3. 等待代码生成完成,并粘贴到编辑器中 4. 点击运行 5. 成功则跳转至下一题。失败则重试(最大重试次数可配置)。 随时点击 **STOP** 即可停止运行。 ## 验证码求解器 使用 Tesseract.js(通过 `@require` 加载)。反转验证码图片以提升 OCR 准确率。动态检测验证码图片 —— 适用于不同的 SkillRack 页面布局。 首次运行需要几秒钟来初始化 Tesseract。随后的运行速度会很快。 ## ACE 编辑器绕过详情 SkillRack 使用多层防护来阻止在代码编辑器中进行复制/粘贴: | SkillRack 的做法 | 脚本的做法 | |---------------------|----------------------| | `commands.addCommand({name:'bte', bindKey:'ctrl-c\|ctrl-v\|...'})` | 拦截包含 `bte` 键的 `addCommand` 调用 | | `commands.on("exec", ...)` 粘贴拦截 | 剔除包含粘贴相关逻辑的 exec 处理程序 | | `container.addEventListener("drop", ...)` | 在捕获阶段添加有效的拖放处理程序 | | 批量粘贴拦截(如果粘贴超过 30 个字符则重置编辑器) | 拦截 `setValue()` 和 change 处理程序 | | `cs()` 差异检查 | 将其覆盖,始终允许代码同步 | 该脚本会在 SkillRack 的代码执行之前(`@run-at document-start`)拦截 `ace.edit()`,因此所有限制措施在被应用之前就已经被解除了。 ## MFIB —— 多项填空题 某些 SkillRack 题目包含多个与静态代码混合的内联填空处(`[BLANK_0]`、`[BLANK_1]` 等)。 该脚本会: 1. 解析模板,识别每一个填空处 2. 向 AI 发送结构化的 JSON 提示词 3. 解析返回的 JSON 数组响应 4. 使用标准的浏览器事件填充每个输入框(以便 React/Angular 框架能正确记录数据更改) ## 启动流程 ``` document-start: all event interceptors installed ↓ Kill switch check: fetches kill.txt from GitHub ↓ (if true) Update check: compares @version against GitHub ↓ (if current) Disclaimer modal (first run only, saved in localStorage) ↓ (accepted) UI initialised: settings panel, AI button, captcha solver ``` ## 终止开关 脚本在每次加载时都会检查本仓库中的 `kill.txt` 文件。 - `true` → 正常运行 - `false` → 显示“Script Disabled”并停止运行 用于紧急情况(例如 SkillRack 更新了某些内容,导致绕过机制严重失效)。 ## 故障排除 **剪贴板依然被阻止** 检查控制台是否输出“Blocked” —— 这意味着 jQuery 处理程序在脚本之前运行了。请确认在 Tampermonkey 的脚本设置中勾选了 `@run-at document-start`。 **ACE 编辑器空白 / `getSession is not a function`** 通常意味着编辑器在拦截机制生效前就已经加载。请尝试强制刷新(Ctrl+Shift+R)。 **验证码无法求解** 首次运行时请等待 3-5 秒(正在下载 Tesseract)。如果陷入死循环,请关闭并重新打开该标签页。 **ChatGPT 提供程序无法使用** - 未安装扩展程序? → [Chrome](https://chromewebstore.google.com/detail/sign-in-with-chatgpt/odbgboachaefbbbdiffcefhpkekhfcna) / [Firefox](https://addons.mozilla.org/firefox/addon/sign-in-with-chatgpt/) - Token 过期? → 在设置中重新登录 - 遇到 403 错误? → OpenAI 可能已经修补了该端点。[提交 Issue](https://github.com/Vishnu-tppr/Skillrack-Script/issues) - 仍然被阻止? → 运行 `npx openai-oauth@latest` 作为代理回退方案 **OpenRouter 模型未加载** 点击模型选择器中的 🔄 按钮。模型缓存时间为 6 小时。 ## 免责声明 本脚本按“原样”提供。使用它可能会违反 SkillRack 的服务条款以及你所在机构的相关学术诚信政策。你需要对自己如何使用该脚本负责。 ChatGPT 集成功能使用了 [openai-oauth](https://github.com/EvanZhouDev/openai-oauth),这是一个非官方的社区项目。它不隶属于 OpenAI,也未获得 OpenAI 的认可。你必须遵守 OpenAI 的[使用条款](https://openai.com/policies/terms-of-use/)。 **在实际考试期间,请务必禁用此脚本。** ## 更新日志 ### v5.0f - 通过 openai-oauth 集成 ChatGPT 提供程序(仅需浏览器,无需 API key) - 使用 `GM_xmlhttpRequest` 直接调用 `chatgpt.com/backend-api/codex` - 遇到 401/403 错误时自动回退至 `npx openai-oauth` 代理 ### v5.1 - 支持多项填空题 (MFIB),采用 JSON 提示词与响应格式 - 重构 `window.ace` 拦截机制(修复了编辑器空白的 Bug) - 仅执行运行的 AutoSolver(不自动点击提交) - OpenRouter:默认使用 `gemini-2.0-flash:free`,回退使用 `openrouter/free` ### v5.0 - 支持 C/C++ 语言标签识别与注释剥离 - 提交前进行代码相似度检查 - 接入 YuppBridge 提供程序(200 多种模型) - 接入 DuckDuckGo AI 提供程序(免费,无需密钥) ### v4.6 - 强制更新检查与阻塞式弹窗提示 - 首次使用免责声明 - 通过 `kill.txt` 实现远程终止开关 ### v4.5 - 动态加载 OpenRouter 模型(通过 API 获取,缓存 6 小时) - 仅显示免费模型的过滤器 - 自动求解器 (Auto Solver) 停止按钮 ### v4.4 - 接入 G4F 提供程序 - 自动求解器(实验性功能) ## 致谢- **[ToonTamilIndia](https://github.com/ToonTamilIndia)** — 主要开发 - **[adithyagenie](https://github.com/adithyagenie/skillrack-captcha-solver)** — 验证码求解器 - **[EvanZhouDev/openai-oauth](https://github.com/EvanZhouDev/openai-oauth)** — openai-oauth SDK (Apache-2.0) - **[vishnu-tppr](https://github.com/vishnu-tppr)** — ChatGPT 集成与逆向工程 MIT License
标签:AI辅助编程, CMS安全, JavaScript, 数据可视化, 油猴脚本, 浏览器自动化, 策略控制器, 自定义脚本, 防作弊绕过