[cursor-free-vip] 机器标识管理 | 自动化注册系统 | OAuth浏览器处理器

发布于:2025-06-25 ⋅ 阅读:(14) ⋅ 点赞:(0)

第六章:机器标识管理

欢迎回到 cursor-free-vip

第五章:Cursor数据库接口中,我们学习了如何通过直接操作Cursor应用的内部数据文件(特别是state.vscdb SQLite数据库和storage.json文件)来读写认证令牌等敏感信息。

本章将深入探讨Cursor应用识别设备安装的核心机制——机器标识管理系统

该模块如同数字指纹修改专家,能够精准定位并重置Cursor用于设备识别的各类标识符。

作用

机器标识管理系统主要实现:

  • 设备指纹重置:修改存储于多处的机器标识,使Cursor误判为全新安装
  • 试用限制解除:通过变更硬件指纹绕过试用期计数机制
  • 系统状态回溯:支持备份/恢复历史设备标识,实现状态回滚

场景:设备指纹重构

操作流程如下:
在这里插入图片描述

技术实现架构

标识生成体系

采用分层标识生成策略:

# 生成设备指纹(reset_machine_manual.py)
import uuid, hashlib

class MachineIDResetter:
    def generate_new_ids(self):
        dev_device_id = str(uuid.uuid4())  # 标准UUIDv4
        machine_id = hashlib.sha256(os.urandom(32)).hexdigest()  # 64位哈希
        mac_machine_id = hashlib.sha512(os.urandom(64)).hexdigest()  # 128位哈希
        return {
            "telemetry.devDeviceId": dev_device_id,
            "telemetry.machineId": machine_id,
            "telemetry.macMachineId": mac_machine_id
        }

[实现Rpc] 项目设计 | 服务端模块划分 | rpc | topic | server
在这里插入图片描述

其中的MID,也是分层随机生成的

多平台适配

根据操作系统差异处理关键路径:

; config.ini片段
[WindowsPaths]
machine_id_path = C:\ProgramData\Cursor\machineId

[MacPaths]
machine_id_path = /Library/Application Support/Cursor/machineId

注册表操作(Windows)

修改Windows系统级标识:

import winreg

def _update_windows_machine_guid(self):
    key = winreg.OpenKey(
        winreg.HKEY_LOCAL_MACHINE,
        "SOFTWARE\\Microsoft\\Cryptography",
        0, 
        winreg.KEY_WRITE | winreg.KEY_WOW64_64KEY
    )
    winreg.SetValueEx(key, "MachineGuid", 0, winreg.REG_SZ, str(uuid.uuid4()))

⭕文件修补

使用正则表达式修改Cursor的JS逻辑:

def modify_main_js(self, main_path):
    with open(main_path, "r") as f:
        content = f.read()
    # 替换getMachineId函数逻辑
    content = re.sub(
        r"async getMachineId\(\)\{return [^??]+\?\?([^}]+)\}", 
        r"async getMachineId(){return \1}", 
        content
    )
    # 写入修改后文件
    with tempfile.NamedTemporaryFile(mode="w", delete=False) as tmp_file:
        tmp_file.write(content)

使用指南

用户视角

执行重置流程:

  1. 运行main.py启动工具
  2. 主菜单选择"重置机器ID"(通常为选项1)
  3. 观察控制台输出的备份路径提示
  4. 等待"重置成功"提示后重启Cursor

开发者接口

通过MachineIDResetter类实现深度控制:

from reset_machine_manual import MachineIDResetter

resetter = MachineIDResetter(translator)
# 自定义标识生成策略
resetter.custom_ids = {
    "telemetry.devDeviceId": "预设ID_XXXX",
    "storage.serviceMachineId": "企业级标识符"
}
resetter.execute_custom_reset()

安全

  • 修改系统注册表需管理员权限
  • 建议在虚拟机环境测试重置功能
  • 避免在正版授权设备使用此功能
  • 频繁修改设备ID可能触发风控机制

总结

机器标识管理系统通过以下机制实现设备伪装:

  1. 多源标识覆盖同时修改JSON配置、SQLite记录、系统注册表等多处存储
  2. 密码学级生成:采用UUIDv4SHA-256/512算法生成不可逆标识
  3. 跨平台兼容:自动适配Windows/macOS/Linux系统的路径与API差异
  4. 版本容错设计:支持Cursor 1.75至2.0版本的JS文件结构差异

(然后覆盖是通过ID存储文件和调用部分的解耦,所以在ID的时候我们重新write文件,在下次调用read时,就自认实现了更新多源配置)

下一章我们将解析自动化注册系统如何实现账户的批量创建与认证维护。

第七章:自动化注册系统


第七章:自动化注册系统

第六章:机器标识管理中,我们学习了如何通过修改设备指纹重置Cursor的试用限制

本章将解析如何通过自动化注册系统实现账户的无人值守创建

核心使命

自动化注册系统旨在:

  • 全流程自动化:从表单填写到邮箱验证的端到端自动化
  • 多场景适配:支持临时邮箱服务与人工验证码输入双模式
  • 密码学安全:采用Faker库生成高强度随机密码(如qQ5!kL9@mM3#
  • 反检测机制模拟人类操作间隔(0.3-0.8秒随机延迟)

系统架构

在这里插入图片描述

技术实现

浏览器自动化前文:[测试_9] 自动化测试 | web自动化–Selenium实战

浏览器自动化核心

# new_signup.py 核心驱动
from DrissionPage import ChromiumPage

def setup_driver():
    # 配置浏览器参数
    co = ChromiumOptions()
    co.set_argument("--incognito")  # 隐身模式
    co.headless(False)  # 可视化运行
    
    # 加载反检测扩展
    co.add_extension("./antidetect/")
    return ChromiumPage(co)

表单智能填充

def fill_signup_form(page, first_name, last_name, email):
    # 定位元素并模拟输入
    page.ele("@name=first_name").input(first_name)
    human_delay('input')
    page.ele("@name=last_name").input(last_name)
    human_delay('input')
    page.ele("@name=email").input(email)
    human_delay('submit')
    page.ele("@type=submit").click()

Turnstile验证破解

def handle_turnstile(page):
    # 检测验证框架
    if frame := page.get_frame('@src*=challenges.cloudflare.com'):
        # 注入破解脚本
        frame.run_js('''() => {
            window._cf_chl_opt.cUid = 'reserved';
            window._cf_chl_enter(); 
        }''')
        human_delay('verification', 3.0)

双模验证码处理

def handle_verification_code(mode='auto'):
    if mode == 'auto':
        # 临时邮箱API轮询
        code = TempMailPlus().fetch_code()
    else:
        # 控制台交互获取
        code = input("请输入6位验证码: ")
    # 模拟键盘输入
    for i, digit in enumerate(code):
        page.ele(f"@data-index={i}").input(digit)
        human_delay('keypress')

执行流程

自动注册时序

在这里插入图片描述

高级功能

分布式注册

支持通过配置文件启动多实例并行注册

python main.py --mode batch --workers 5 --config profiles.yml

验证码容错机制

class VerificationHandler:
    def retry_policy(self, attempt):
        base_delay = 2 ** attempt  # 指数退避
        jitter = random.uniform(0, 1)
        return base_delay + jitter

流量特征伪装

def mimic_human_behavior():
    # 随机鼠标移动轨迹
    page.scroll.random()
    page.mouse.move(
        start=(100, 200),
        destination=(300, 400),
        steps=random.randint(5,20)
    )
    # 随机打字间隔
    for char in text:
        type_char(char)
        time.sleep(random.gauss(0.1, 0.02))

安全警告

  • 使用临时邮箱需遵守《反垃圾邮件法案》
  • 自动化注册可能违反Cursor服务条款
  • 建议通过代理池隐藏真实IP
  • 验证码破解功能仅供学习研究

总结

自动化注册系统通过以下创新实现无人值守:

  1. 多模态验证处理:云端验证码API与人工输入无缝切换
  2. 行为指纹伪装:鼠标轨迹/输入节奏模拟真实用户
  3. 异步任务管理:支持并行注册任务调度
  4. 错误弹性设计:验证失败后的指数退避重试

下一章我们将深入探讨OAuth浏览器处理器如何实现第三方认证的自动化管理

第八章:OAuth浏览器处理器


第8章:OAuth浏览器处理器

在上一章第7章:自动化注册系统中,我们学习了该工具如何作为机器人助手完全自动化创建Cursor账户的全过程,包括表单填写和邮件验证处理。

现在让我们看看另一种常用于登录的Cursor认证方式:使用现有的Google或GitHub账户。

这通常涉及一个名为OAuth的流程。

  • 想象要登录一个新网站,但不需要为该网站单独创建用户名和密码,而是看到"使用Google继续"或"使用GitHub登录"选项。

  • 当点击其中一个选项时,会被临时重定向到Google或GitHub的网站,确认身份(可能需要输入密码),并授权新网站(此处即Cursor)获取邮箱等基本信息。

  • 之后Google/GitHub将我们带回原网站完成登录。这整个流程就是OAuth

Cursor应用对其Google和GitHub登录选项使用相同的流程。但由于cursor-free-vip是命令行工具,它没有内置浏览器来处理这些重定向和交互。

这就是OAuth浏览器处理器的用武之地。

  • 它是cursor-free-vip中专门负责使用我们真实浏览器(如Chrome或Edge)执行交互式OAuth登录流程的组件。

  • 它不像自动化注册系统那样尝试自动化每个步骤,而是启动浏览器导航到正确页面后,等待手动在浏览器窗口完成登录步骤

  • 当在浏览器中通过Google/GitHub成功登录后,处理器会检测到登录成功,捕获返回给Cursor的必要认证信息,并用这些信息更新本地Cursor数据库

OAuth浏览器处理器相较于 自动化注册,就只是帮我打开到了 需要我们操作的页面,登录还是要我们手动操作的


OAuth浏览器处理器的用途?

OAuth浏览器处理器的主要目的是通过利用现有浏览器和配置文件,使用第三方服务(Google/GitHub)登录Cursor

其优势包括:

  • 使用已有账户(如主用Google账号)
  • 处理命令行工具无法独立完成的复杂Web认证流程
  • 通过现有浏览器配置文件,若已登录Google/GitHub可自动完成认证加速流程

它充当命令行工具和基于Web的交互式OAuth登录流程之间的桥梁。

核心用例:使用Google或GitHub登录

核心用例是通过工具启动的浏览器完成Google或GitHub登录,提取认证令牌并更新Cursor本地数据,使应用识别登录状态。

流程包括:

  1. 识别已安装的浏览器(通常为Chrome/Chromium)
  2. 找其用户数据目录和配置文件
  3. 允许选择使用的浏览器配置文件
  4. 临时关闭现有浏览器实例避免冲突
  5. 使用DrissionPage 启动受控浏览器实例(类似第7章
  6. 导航至Cursor认证页面
  7. 点击"使用Google登录"或"使用GitHub登录"按钮
  8. 等待与浏览器窗口交互完成Google/GitHub登录和授权
  9. 检测浏览器成功重定向回Cursor网站
  10. 提取认证令牌(通常存储为类似WorkosCursorSessionToken的cookie)
  11. 提取关联邮箱(如有)
  12. 使用Cursor数据库接口更新本地数据库(state.vscdb

如何使用OAuth浏览器处理器

作为用户

通过主应用控制器的主菜单选项(如"使用Google登录(OAuth)“或"使用GitHub登录(OAuth)”)与处理器交互。

选择选项(如示例main.py中的选项5对应Google)后,工具将:

  1. 显示浏览器初始化信息
  2. 多配置文件时提示选择(如"Default"、"Profile 1"等)
  3. 显示关闭现有浏览器的警告(需确认y
  4. 弹出工具控制的浏览器窗口
  5. 窗口导航至Cursor登录页并重定向到Google/GitHub
  6. 此时需手动操作:在浏览器完成账户选择和授权
  7. 成功登录后自动重定向回Cursor网站(如authenticator.cursor.sh
  8. 工具通过检查cookie或URL变更检测登录成功
  9. 自动获取会话令牌和邮箱
  10. 更新Cursor数据库
  11. 确认成功并关闭浏览器

与自动化注册的关键区别在于需手动完成Google/GitHub登录步骤。

作为开发者(查看代码)

核心逻辑实现在oauth_auth.pyOAuthHandler类。

入口点是oauth_auth.main函数(由主应用控制器调用):

# main.py中调用示例(Google对应选项5)
case "5":
    from oauth_auth import main as oauth_main
    oauth_main('google', translator)
    print_menu()

oauth_auth.main根据auth_type创建OAuthHandler实例并调用对应处理方法:

# oauth_auth.py简化main函数
def main(auth_type, translator=None):
    handler = OAuthHandler(translator, auth_type=auth_type)
    
    if auth_type.lower() == 'google':
        success, auth_info = handler.handle_google_auth()
    elif auth_type.lower() == 'github':
        success, auth_info = handler.handle_github_auth()
    
    if success:
        auth_manager = CursorAuth(translator)
        if auth_manager.update_auth(
            email=auth_info["email"],
            access_token=auth_info["token"],
            refresh_token=auth_info["token"],
            auth_type=auth_type
        ):
            # 成功处理逻辑

该函数协调整个流程:初始化处理器、调用认证逻辑、成功后通过Cursor数据库接口保存凭证。

底层原理(浏览器交互)

oauth_auth.py中的OAuthHandler类使用DrissionPage库控制浏览器实例:

在这里插入图片描述

关键代码片段:

  1. 浏览器配置初始化(setup_browser方法):
def setup_browser(self):
    user_data_dir = self._get_user_data_directory()
    browser_path = self._get_browser_path()
    co = ChromiumOptions().set_paths(browser_path, user_data_dir)
    self.browser = ChromiumPage(co)
  1. 用户配置文件选择(_select_profile方法):
def _select_profile(self):
    profiles = self._load_profiles()  # 从Local State加载配置
    print("可用的配置文件:")
    for i, profile in enumerate(profiles):
        print(f"{i+1}. {profile['name']}")
    choice = int(input("请选择:"))
    self.selected_profile = profiles[choice-1]['id']
  1. 认证等待循环(_wait_for_auth方法):
def _wait_for_auth(self):
    while time.time() < start_time + 300:
        cookies = self.browser.cookies()
        if 'WorkosCursorSessionToken' in cookies:
            return self._extract_auth_info()
        time.sleep(2)
  1. 账户删除逻辑(_delete_current_account方法):
def _delete_current_account(self):
    delete_js = """
    fetch('https://www.cursor.com/api/delete-account', {
        method: 'POST', 
        credentials: 'include'
    })"""
    self.browser.run_js(delete_js)

结论

本章探讨了cursor-free-vip中负责管理Cursor的Google/GitHub交互式登录的OAuth浏览器处理器

  • 了解了它如何通过DrissionPage启动和控制本地浏览器,引导选择配置文件,导航至认证页面,并关键性地等待用户手动完成登录步骤

  • 成功后自动检测登录状态,提取认证令牌和邮箱,并通过Cursor数据库接口更新本地Cursor安装状态。

该处理器为命令行工具提供了处理Web认证流程的必要桥梁

END ★,°:.☆( ̄▽ ̄):.°★


自动化注册系统用于批量创建新账户,实现无限续杯

OAuth浏览器处理器用于通过浏览器实现第三方账号(如Google/GitHub)登录认证。


网站公告

今日签到

点亮在社区的每一天
去签到