Zcode-register-v2.0 [20260708]:网站的验证码升级,程序自动过验证码的难度极大,因此使用半自动的方式,当验证码出现时,程序会开始等待人工拖动,并每3秒检查一次结果,当检查到验证码已完成后,便会自动往下进行。也就是说,需要人工拖动滑块,直达网页上出现验证通过即可。注意不需要人工点击登录按钮,程序会自动进行。
Zcode-register项目整体上采用自动化的方式实现,涉及到与Zcode客户端的操作使用的是键鼠自动化,涉及到浏览器操作的使用的是浏览器自动化。
由于Zcode更新速度较快,且市面上有大量的账号管理切换工具,秉承着不重复造轮子的原则,Zcode-register只负责注册账号与Zcode客户端授权登录。需要与其他任意一个账号管理切换工具搭配使用。由于搭配使用的工具不唯一,因此当Zcode-register完成注册与登录授权后,需要人工点击保存账号。以 zcode-switcher 为例:
当Zcode客户端已经完成了登录后,便可保存当前的账号到本地,便于下次使用时可以不需要登录而直接切换。具体的流程可以在运行顺序章节查看。
当然你也可以只使用Zcode-register进行注册登录授权,手动管理账号密码。
以下软件都可以和Zcode-register搭配使用,任选其一即可。
- github 主页链接:https://github.com/git-l-1031/zcode-switcher
- 截图:
- github 主页链接:https://github.com/jinpeng-vnode/zcode-account-switcher
- 截图:
- github 主页链接:https://github.com/smartlizi/zcode-account-switcher
- 截图:
- github 主页链接:https://github.com/FedyaLight/zcode-account-switcher
- 截图:
- github 主页链接:https://github.com/arbiswork-boop/zcode-switcher-account
- 截图:
当登录开始时,点击连接Z.ai继续使用按钮,Zcode客户端会生成登录授权链接并自动打开浏览器,而该链接里面的参数在登陆成功后授权时Zcode客户端需要检查是否一直,因此程序使用mitm中间人攻击的方式监听电脑的所有请求,以获取到该链接。
在 releases 下载程序后,请务必将程序完整解压到 C:\dist 目录,确保 Zcode-Register.exe 的运行路径固定为 C:\dist\Zcode-Register.exe,也不要随意更改例如venv文件夹的名字。这是因为mitmproxy.exe中涉及的 Python 文件路径已在打包时写死,如果路径发生变化,会导致mitmproxy无法正确加载脚本,无法拦截到授权链接。
程序在点击Zcode客户端的连接Z.ai继续使用步骤时会使用鼠标,此时不能使用电脑,也不要让任何软件置顶且占用Zcode客户端的连接Z.ai继续使用按钮的位置,否则会因为无法点到按钮导致等不到 OAuth 授权地址而报错。不管怎样,程序在任何一个流程报错,都会重新开始新的流程。
运行前确认当前ZCode本地账号不需要保留。程序启动注册前会删除ZCode配置目录下的credentials.json与config.json。这是为了让ZCode进入干净的登录状态,打开客户端直接是登录页面。
整体上程序的流程为:
启动 mitm 监听
↓
删除已有的授权凭据
↓
启动 Zcode 并使用键鼠自动化点击按钮
↓
mitm 中间人攻击捕获 chat.z.ai 的 OAuth 授权地址
↓
自动化框架启动浏览器 进入注册页
↓
购买临时邮箱
↓
自动填写邮箱、用户名、密码
↓
自动处理滑块验证
↓
轮询邮箱,获取验证邮件链接
↓
完成邮箱验证和账号注册
↓
捕获 zcode://zai-auth/callback 回调地址
↓
打开回调地址,让 ZCode 写入本地登录配置
↓
等待人工接管,保存当前账号
程序依赖 config.yaml。会用到下面几组配置:
zcode:
# zcode 进程名 如非必要保持不变
process_name: 'ZCode.exe'
# zcode 窗口名 如非必要保持不变
window_name: 'zcode'
# zcode 保存凭证的文件夹
folder_path: 'C:\Users\Administrator\.zcode\v2'
dp:
proxy: 'http://127.0.0.1:7897'
browser_path: 'C:\Program Files\Google\Chrome\Application\chrome.exe'
mitm:
port: '8080'
mailnest:
# 注意 url 末尾没有 /
api_url: 'https://mailnest.top'
# 申请 api key https://mailnest.top/account
ak: 'ak'
# z-code 项目代码 https://mailnest.top/buy-email
project_code: 'z-ai001'几个配置的含义:
mitm.port是抓取 OAuth 授权地址用的本地代理端口。具体见下一节中的说明。zcodezcode.process_name用来识别并关闭已有的ZCode进程,避免旧登录状态影响键鼠自动化。zcode.window_name用来定位ZCode授权窗口,程序会自动点击窗口里的授权按钮。zcode.folder_path是ZCode保存credentials.json和config.json的目录。程序开始前会输出授权凭证,使得打开Zcode客户端时显示登录页面;注册成功后会读取这里面的文件并导出结果。
mailnestmailnest.api_url、mailnest.ak、mailnest.project_code配置邮箱平台购买临时邮箱和收取验证邮件。需要第三方接码平台迈巢中,配置ak和zcode的项目代码。找来找去,目前只在找到这一个平台支持zcode的接码。
dpdp.proxy是浏览器注册过程使用的代理。只有在非中国大陆的网络时才会允许使用邮箱注册。dp.browser_path是自动化浏览器的路径。
配置代理程序,注意只能打开代理程序,但是不能接管系统代理,只能暴露一个端口,仅给自动化打开的浏览器使用。即对应配置文件中dp.proxy的配置项。
运行 run_mitm.bat,程序会自动启动本地mitmproxy代理服务,监听配置项中mitm.port 对应的端口。在Windows的设置中,配置代理端口为mitm.port 对应的端口,使得Windows中的网络请求经过mitmproxy 代理。
如果是第一次使用,需要安装系统证书:在浏览器中访问 http://mitm.it 页面,在该页面下载对应Windows平台的证书并进行安装,安装时选择“受信任的根证书颁发机构”,完成后关闭浏览器并返回程序窗口即可,证书安装完成后mitmproxy才能正常解密 HTTPS 流量并捕获 OAuth 授权请求。
然后再启动主程序Zcode-register-v1.0.exe。 会提示:
程序运行时会删除 zcode 登录凭证 请务必确认没有重要资产
按回车键开始 否则请直接关闭:
确认可以清理当前ZCode本地登录状态后,再按任意键继续。
当Zcode-register完成登录与授权后,会停下来等待用户进行账号保存,当保存后按回车键即可开始下一次的注册与授权。注意 zcode-switcher 要刷新后再进行保存。
以下是一次完整流程的输出截图:
运行成功后,主要看这几个文件或目录。
每成功注册一次,会追加一行:
邮箱----密码----credentials.json 内容----config.json 内容
这是最直接的结果文件。
程序日志会写到这里:
logs/
└─ 20260626_203000.log
注册失败、接口返回异常、验证码失败、收件失败等信息都会写入日志。
run_mitm.bat 会把捕获到的 OAuth 授权地址写入这个文件。主程序会从这里读取最新的授权地址。










