Skip to content

Releases: lingxiaoyiyu-hub/grok-register-win

v2.0.1

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 26 Jul 16:35

v2.0.1

一次完整的代码审查与修复。本版不含新功能,全部是修 bug、补安全、清死代码。

升级方式:下载新的 Source code 解压覆盖即可,config.json 不受影响。


🐛 用户反馈的问题

账号文件勾选框不显示对号 —— 已修复。

原来的复选框把绘制交给系统原生控件(appearance:auto + accent-color),
在部分 Windows 浏览器 / 系统主题下勾不出来:点了确实生效,但看不到任何标记。
(v1.x 那次「修复」是个空提交,实际什么都没改。)

现在改为 CSS 自绘对号,不依赖任何系统控件,任何内核 / 主题下表现一致。顺带:

  • 点击整个单元格即可勾选,不用瞄准 18px 的小方块
  • 选中行整行高亮
  • 「删除选中」按钮实时显示已选数量,未选中时禁用
  • 表头全选框支持半选状态

🔒 安全修复

逛个网页就能删掉你的账号(重要)

面板监听在本机,但浏览器里任意网页都能向 127.0.0.1:8787 发请求,
而面板此前照单全收。实测可从外部网站直接:启动 / 停止注册任务、
删除账号文件、整批替换工作区。

原因有三:默认无鉴权;get_json(force=True)text/plain 也解析,
使跨站请求不触发 CORS 预检;multipart 上传本身就是「简单请求」。

现已加入两道闸:

  • Host 头白名单 —— 挡住 DNS rebinding(把恶意域名解析到 127.0.0.1)
  • 改状态的请求必须带同源 Origin/Referer —— 挡住跨站伪造请求

移除假的登录功能

PANEL_AUTH / PANEL_PASSWORD 已删除。它的 session 签名密钥硬编码在源码里
"grok-register-panel-local-secret"),任何人都能伪造登录态
设了强密码也拦不住。安全性改由「只绑回环地址 + 同源校验」保证。

同时修掉登录流程里的开放重定向(/login?next=https://evil.example.com)。

其它

  • 移除源码中硬编码的第三方 API bearer
  • 邮箱访问凭证(JWT)不再原样打印进日志与面板
  • config.json 写入后收紧文件权限

🔧 功能性 Bug

问题 说明
代理会偷偷改走直连 配置里写着 allow_proxy_fallback: false,但所有 HTTP 请求在代理报错时仍会静默直连重试,暴露真实出口 IP。现已遵守该开关
端口盲扫 + 偷改配置 Clash 没开时会挨个试本机端口,试到哪个通就当代理用,还写回 config.json 覆盖手填值。现在会先发 CONNECT 验证对方确实是 HTTP 代理,且探测结果只对本次运行生效
GROK_PROXY 从未生效 README 说它能覆盖代理,但注册程序根本没读这个变量(此前靠偷改 config.json 才「看起来」有用)。现已真正接上
连点两下会起两个任务 「是否已在运行」的检查与置位不在同一临界区,两个任务争抢同一进程,停止只能停掉一个
异常被静默吞掉 注册循环在 finallybreak 并调用可能抛异常的浏览器重启,会把本轮真正的错误替换掉,日志上看不出真实失败原因
换票时混入上一批凭证 上传新 SSO 时,后台转换线程可能在归档之后把上一批结果写回来,混进下载包。现按「工作区代次」作废在途任务
未知邮箱源静默降级 provider 拼错一个字母会静默创建一个空配置邮箱,表现为「莫名收不到验证码」。现在直接报错
PR 欢迎语从未触发 workflow 的事件名判断写错(pull_request vs pull_request_target

🧹 清理与优化

  • 移除服务器版:删掉遥控 Clash 换节点的约 120 行死代码(前端从未调用过)
    及相关接口 /api/nodes/api/nodes/select
  • 移除 OutlookMailbox:约 1140 行从其它项目拷贝而来的死代码,
    依赖本仓库不存在的模块,且引用未定义函数,一旦调用必崩
  • CLI 不再依赖 tkinter:面板走的就是 CLI 模式,此前却在 import 阶段就硬依赖
    图形库,没装 tcl/tk 的 Python 连 CLI 都起不来
  • 日志改增量传输:面板每 2 秒轮询会重传整个 2000 行缓冲区(约 400KB),
    现在只传新增行
  • 移除 Google Fonts 外链:离线 / 内网环境下会阻塞渲染,且泄漏使用行为;改用系统字体栈
  • 修复 datetime.utcnow() 弃用告警、启动器忙轮询与文件句柄泄漏、
    SSO cookie 优先级里一个永远不会执行的分支、CPA 计数语义混乱等

✅ 质量保障

本版新增 47 个回归测试(此前项目零测试)和 CI 工作流:

  • 每一条安全修复都有对应测试,用的就是修复前能打穿的真实攻击请求
  • 代理回退、端口探测、日志分页、上传解析、路径穿越防护等均有覆盖
  • CI 在 Python 3.10 / 3.12 上跑 ruff + compileall + pytest

本地运行:

.venv\Scripts\python.exe -m pytest tests\ -q

⚠️ 不兼容变更

  1. 服务器版发行包不再提供,本项目专注 Windows 本地使用
  2. PANEL_AUTH / PANEL_PASSWORD / PANEL_SECRET 已移除,设置这些变量不再有任何效果
  3. /api/nodes/api/nodes/select 接口已删除(前端从未使用)
  4. 邮箱源 outlook / microsoft 已移除(原本就无法运行)
  5. 代理探测结果不再写回 config.json。若希望固定某个端口,请手动修改配置文件

v2.0.0

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 21 Jul 15:45

重大变更

面板 UI 全面重做

从深色科技蓝渐变改为暖米色「Atelier 简约工坊」风格,整体视觉语言完全更新。

项目 旧(v1.4.0) 新(v2.0.0)
背景 深色径向渐变 暖米色 #f7f4ed 纯净底
边框 1px 蓝灰线 + 圆角 10-16px 1px 黑线 + 2px 微圆角
按钮 渐变填充 + 阴影 扁平铁锈红/墨黑/绿/琥珀
字体 system-ui Bricolage Grotesque + IBM Plex Sans/Mono + Noto Sans SC
顶栏 flex 分散布局 黑色通栏 + 铁锈红 Logo
统计 auto-fit 卡片 6 格通栏分割
日志 深色圆角框 深色通栏(与卡片无缝衔接)

全中文化

所有界面文案改为中文,保留技术专有名词(CF Worker / SSO / CPA / API URL / OAuth 等)。

功能逻辑零改动

全部 id、API 调用、Jinja 变量、JS 函数原样保留,仅替换 HTML 结构和 CSS。注册、CPA 转换、邮箱配置、文件管理等功能行为与 v1.4.0 完全一致。

升级

  1. 下载本 Release 的 Source code (zip),或 git pull / 检出 v2.0.0
  2. 双击 start.bat
  3. 浏览器 Ctrl+F5 强制刷新面板(首次加载新字体需联网)

服务器版资源(同版本附加包)

面向 Linux 无桌面服务器,内置 mihomo + 订阅链接面板 + 仅 Camoufox 无头

  • 附件:grok-register-server-v2.0.0-mihomo.zip
  • 使用:解压后 chmod +x start.sh bin/mihomo && ./start.sh
  • 面板:http://服务器IP:8787 → 配邮箱 → 填订阅并更新 → 开始注册
  • 包内说明见 SERVER_README.md
  • 不含 密钥 / config.json / 账号数据

本地 Windows 请继续使用本 Release 中的常规资源 + 本机 Clash。

v1.4.0

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 21 Jul 15:07

重大变更

移除全部公共邮箱源

公共临时邮箱(TempMail.lol / DuckMail / GPTMail)均因 xAI 大规模拒收验证码而移除。面板邮箱下拉只保留自建与付费源。

  • 已配置旧公共源的用户自动回退到 cfworker,不会报错
  • 请切换到 CF Worker 自建域名 或其它可用源

邮箱配置层重构

  • cloudflare / custom / tempmailer 等旧标识统一作为 cfworker 别名(同一协议)
  • 删除重复的下拉项与独立配置框
  • 面板邮箱下拉精简为两组:
分组 邮箱源
自建 CF Worker、MoeMail、Freemail、OpenTrashMail
付费 MaliAPI(YYDS)、LuckMail、SkyMail、CloudMail、Laoudo

升级

  1. 下载本 Release 的 Source code (zip),或 git pull / 检出 v1.4.0
  2. 双击 start.bat
  3. 浏览器 Ctrl+F5 强制刷新面板
  4. 在「邮箱服务」下拉选择自建或付费邮箱源并填写配置

Full Changelog: v1.3.1...v1.4.0

v1.3.1

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 20 Jul 13:22

Grok Register Win v1.3.1

修复

下载数量 = 面板当前账号数

  • 下载 CPA / Sub2 只打包当前面板账号列表中的凭证
  • 删除 accounts_*.txt 时同步清理无主 CPA JSON
  • 避免「面板已删号,下载仍全量打包」

升级

  1. 下载本 Release 的 Source code (zip),或 git pull / 检出 v1.3.1
  2. 双击 start.bat
  3. 浏览器 Ctrl+F5 强制刷新面板

相对 v1.3.0

  • v1.3.0:上传 SSO / all.json 整批续期、工作区隔离
  • v1.3.1:下载与删除严格对齐当前面板账号

v1.3.0

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 20 Jul 09:22

Grok Register Win v1.3.0

亮点

面板支持 上传已有 SSO(txt / CPA all.json)→ 整批换票 → 下载 CPA / Sub2,用于凭证续期与旧号池重铸,且与注册批次隔离。

新增

上传 SSO → CPA / Sub2

  • 面板卡片:选择文件 → 上传并转换
  • 支持格式:
    • email----password----sso
    • email----sso
    • 纯 SSO 行
    • CPA 导出 all.json / 单账号 xai-*.json(读取 sso 字段)
  • 整批替换:上传前将当前 accounts_*.txtdata/cpa 归档到 data/archive/<时间戳>_upload/
  • 转换复用现有 lib/sso2cpa_core.py(Authorization Code + referrer=grok-build
  • 完成后仍用顶部按钮下载:
    • SSO TXT
    • CPA ZIP(type=xai / auth_kind=oauth
    • Sub2 ZIP(sub2api-data

工作区模式

模式 行为
上传 只保留本次上传批次;下载只反映该批
注册 从上传模式点「开始注册」时归档上传批次并清空,再跑注册

API

  • POST /api/sso/upload-convert(multipart 字段 file

升级

  1. 下载本 Release 的 Source code (zip) 并解压,或 git pull / 检出 v1.3.0
  2. 双击 start.bat
  3. 浏览器 Ctrl+F5 强制刷新面板
  4. 在「上传 SSO → CPA / Sub2」试用续期流程

说明

  • 上传依赖 JSON/TXT 中的 web SSO;SSO 过期则换票失败
  • 换票成功后仍可能出现上游 403 对话权限被拒(号本身无 Build 对话权限),与本机转换无关
  • 归档目录默认不上传到 Git(见 .gitignore

v1.2.0

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 17 Jul 16:50

Grok Register Win v1.2.0

本版本为邮箱体系重大更新:移除已失效的内置公共临时邮,改为面板下拉多邮箱源,并接入 any-auto-register 风格收码流程。

重大变更

移除内置 Tempmailer

因大规模滥用,Tempmailer 等公共临时邮已拒收 xAI 验证码邮件(页面提示类似:emails from xAI are temporarily not accepted)。
请改用自建或其它邮箱源。

多邮箱源下拉

面板「邮箱服务」可选择:

说明
CF Worker / 自建域名 推荐
cloudflare_temp_email 自建兼容接口
MoeMail 临时邮 API
TempMail.lol 免 key 自动生成
DuckMail / GPTMail 第三方临时邮
MaliAPI (YYDS) 接码/邮箱 API
LuckMail 接码/买邮
SkyMail / CloudMail / Freemail / OpenTrashMail / Laoudo 其它 API/固定邮箱

收码流程增强

  • 发码前快照收件箱(before_ids),忽略旧信
  • 按发码时间过滤(otp_sent_at
  • 统一提取 Grok 验证码格式 ABC-DEF
  • 新增 lib/mailbox_core.pylib/mail_providers.pylib/base_mailbox.pylib/luckmail/

修复

  • 面板「保存邮箱设置」总是失败:删除重复的旧 saveEmailConfig 覆盖新逻辑
  • 未配置完整邮箱源时启动注册会明确提示并失败

升级方法

  1. 下载本 Release 的 Source code (zip) 并解压
  2. git pull / 检出 v1.2.0
  3. 双击 start.bat
  4. 浏览器强制刷新(Ctrl+F5)
  5. 在「邮箱服务」下拉选择源并保存后再注册

config.json 可继续使用;建议对照 config.example.json 补全新字段。

使用建议

  • 要稳定收 xAI 验证码:优先 CF Worker 自建域名
  • 公共临时邮仅作备选,不保证可用
  • 代理节点优先日本

完整变更(相对 v1.1.0)

见 README 更新日志 v1.2.0 与近期 commits。

v1.1.0

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 16 Jul 11:00

修复

注册成功后 SSO → CPA 自动转换失败,日志类似:

[CPA] FAIL ... authorize 未进入 consent 页: https://auth.x.ai/oauth2/authorize?...

根因:curl_cffi 固定使用 chrome131 TLS 指纹,被 Cloudflare 返回 403,authorize 请求根本没进 consent 页。

本版改动

  • 启动时自动选择可用 TLS impersonate(优先 chrome136,并回退其它配置文件)
  • 识别 Cloudflare 拦截时输出明确错误(HTTP 状态 + impersonate),便于排查
  • 不再把 CF 403 误报成「未进入 consent 页」

使用

覆盖更新或下 zip 后 重启 start.bat 再跑。
已注册但 CPA 失败的账号,重启后可补转;也可直接使用已转换的 data/cpa/xai-*.json

v1.0.10

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 16 Jul 10:15

修复(你日志里那一步)

注册流程其实已经走到 填资料并提交 了,然后:

  1. Playwright 驱动在页面报错时崩溃(pageError.location 补丁不全)
  2. 点 Cookie 弹窗时 page_eval 卡 60 秒超时

本版改动

  • 补全 Playwright coreBundle.js 补丁(1.60 有多处)
  • Cookie/同意弹窗脚本超时改为约 12 秒,失败不影响继续拿 SSO
  • 修正 GeoIP(camoufox.locales
  • 优先用较新的 Camoufox 152 浏览器

使用

覆盖更新或下 zip 后 重启 start.bat 再跑。
你本地 1.0.8 目录若已打过补丁,重启即可,无需重下。

v1.0.9

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 16 Jul 09:57

修复

  • 面板日志误过滤:含 “Camoufox” 的正常进度日志以前被当成噪音丢掉,看起来像卡死
  • 首次下载不计入 5 分钟:Camoufox 浏览器首次下载在注册计时前完成,避免下载到一半被杀掉
  • 下载有进度:首次 fetch 时日志会显示仍在下载

说明

如果你刚清过本机缓存,第一次用 Camoufox 需要再下载浏览器(约 1GB),属正常。
也可先改用 Chromium 有头 立即注册。

升级

下载本页 Source code (zip),或从 v1.0.8 覆盖 panel/app.py + lib/camoufox_backend.py 后重启 start.bat

v1.0.8

Choose a tag to compare

@lingxiaoyiyu-hub lingxiaoyiyu-hub released this 16 Jul 09:35

主要更新

  • 单账号 5 分钟硬超时:一个号卡住超过 5 分钟会自动终止,进入下一轮(round_timeout_sec,默认 300
  • 成功后超时仍算成功:已经注册成功、卡在后续步骤(如 NSFW)时,不再整轮记失败
  • 减少漏转 CPA:每轮结束都会扫描新账号文件并入队转换
  • 不再改坏配置:面板不会把 config.json 里的 register_count 强行改成 1

配置

config.json

"round_timeout_sec": 300

或环境变量:

$env:ROUND_TIMEOUT_SEC="300"

范围:60–3600 秒。

升级

下载本 Release 源码包,或:

git pull
git checkout v1.0.8

Windows:解压后双击 start.bat 即可(首次仍会建 venv / 装依赖)。

相对 v1.0.7

在 v1.0.7(Sub2 导出等)基础上,只增强注册卡住时的自动跳过与成功率统计/CPA 可靠性。