Files
cursornew2026/deobfuscated/ANALYSIS.md
ccdojox-crypto 9e2333c90c CursorPro 后台管理系统 v1.0
功能:
- 激活码管理 (Pro/Auto 两种类型)
- 账号池管理
- 设备绑定记录
- 使用日志
- 搜索/筛选功能
- 禁用/启用功能 (支持退款参考)
- 全局设置 (换号间隔、额度消耗等)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-16 20:54:44 +08:00

4.8 KiB
Raw Blame History

CursorPro 反混淆分析报告

项目结构

deobfuscated/
├── extension.js          # 扩展主入口
├── api/
│   └── client.js         # API 客户端
├── utils/
│   ├── account.js        # 账号管理工具
│   └── sqlite.js         # SQLite 数据库操作
└── webview/
    └── provider.js       # Webview 提供者

功能分析

1. extension.js - 扩展入口

  • cleanServiceWorkerCache(): 清理 Cursor 的 Service Worker 缓存
  • activate(): 注册 webview provider 和状态栏
  • updateUsageStatusBar(): 更新状态栏显示使用量

2. api/client.js - API 客户端

与远程服务器通信,主要 API

函数 端点 说明
verifyKey() POST /api/verify 验证激活码
switchAccount() POST /api/switch 切换账号
getSeamlessStatus() GET /api/seamless/status 获取无缝模式状态
injectSeamless() POST /api/seamless/inject 注入无缝模式
getProxyConfig() GET /api/proxy-config 获取代理配置

默认 API 服务器: https://api.cursorpro.com (从混淆代码中提取)

3. utils/account.js - 账号管理

getCursorPaths() - 返回 Cursor 配置路径:

平台 数据库路径
Windows %APPDATA%/Cursor/User/globalStorage/state.vscdb
macOS ~/Library/Application Support/Cursor/User/globalStorage/state.vscdb
Linux ~/.config/Cursor/User/globalStorage/state.vscdb

writeAccountToLocal() - 写入账号数据到本地:

  • 修改 SQLite 数据库中的认证 token
  • 更新 storage.json 中的设备 ID
  • 写入 machineid 文件
  • Windows: 写入注册表

关键数据库字段

cursorAuth/accessToken        - 访问令牌
cursorAuth/refreshToken       - 刷新令牌
cursorAuth/WorkosCursorSessionToken - WorkOS 会话令牌
cursorAuth/cachedEmail        - 缓存邮箱
cursorAuth/stripeMembershipType - 会员类型
telemetry.serviceMachineId    - 服务机器ID
telemetry.devDeviceId         - 设备ID

4. utils/sqlite.js - SQLite 操作

通过 sqlite3 命令行工具直接操作 Cursor 的 VSCode 状态数据库:

  • sqliteGet() - 读取单个值
  • sqliteSet() - 写入单个值
  • sqliteSetBatch() - 批量写入 (使用事务)

5. webview/provider.js - Webview 界面

实现侧边栏 UI提供

  • 激活码验证界面
  • 使用统计显示
  • 无缝模式配置
  • 代理设置
  • 账号切换功能

工作原理

┌─────────────────────────────────────────────────────────────┐
│                     CursorPro 工作流程                        │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 用户输入激活码                                           │
│          ↓                                                  │
│  2. 发送到远程 API 服务器验证                                  │
│          ↓                                                  │
│  3. 服务器返回账号数据 (token, email, 设备ID等)                │
│          ↓                                                  │
│  4. 写入本地 Cursor 配置文件:                                  │
│     - state.vscdb (SQLite 数据库)                            │
│     - storage.json                                          │
│     - machineid                                             │
│          ↓                                                  │
│  5. 提示重启 Cursor 生效                                      │
│                                                             │
└─────────────────────────────────────────────────────────────┘

安全风险分析

  1. 远程服务器控制: 所有账号数据来自 api.cursorpro.com
  2. 本地文件修改: 直接操作 Cursor 数据库和配置文件
  3. 设备指纹伪造: 替换 machineId, devDeviceId 等标识
  4. 进程控制: 可强制关闭 Cursor 进程

混淆技术分析

原代码使用了以下混淆技术:

  1. 字符串数组 + 解密函数: 所有字符串存储在数组中,通过 RC4 算法解密
  2. 十六进制变量名: _0x50c5e9, _0x2b0b
  3. 控制流平坦化: 使用 switch-case 打乱代码执行顺序
  4. 死代码注入: 插入无用的条件分支
  5. Base64 + RC4 双重编码: 字符串先 Base64 再 RC4 加密

此分析仅供安全研究和学习目的