Cursor激活插件的逆向分析

商家发来的插件装好之后,UI be like this。用户端的形式是一个cursor插件,代码是js

那么有没有可能,通过修改代码,实现绕过商家收费呢?

于是我问Agent,后端的实际激活流程是什么?@extension.js

  • 入口:Webview 的 type: 'activate' 消息会调用 _handleActivate,它记录“开始激活”,向前端发出 activateStatus: loading,随后执行 doActive(true);若无异常则再回传 success,否则回传 error
  • 后端账号获取:doActive 会确认当前有登录信息且 isVip()为真,然后通过 gain() 调后端换取新的账号 acc。拿到数据后,把账号写入用户家目录下的 .cursor_info,同时把本地缓存的 token 写入 .codex_cursor,供 Cursor 客户端读取。
  • Workbench 注入:随后它读取 VSCode/appRoot/out/vs/workbench/workbench.desktop.main.js,若未曾备份则先 .bak。文件被插入 window.CODEX_URL="<后端域名>"; window.CODEX_VER=<版本>; window.CODEX_TOKEN="<token>"; 以及 getCursorCode() 生成的脚本,再用一系列 replace 重写 VS Code 内部函数,把所有 Cursor 流量和错误上报代理到插件服务器。
  • Extension Host & 扩展篡改:同一流程还补丁 workbench/api/node/extensionHostProcess.js(把 if(!w.valid) 改写成恒 false,以免新的账号检查失败)以及自带的 extensions/cursor-always-local/dist/main.js,确保 VS Code 端和 Cursor 扩展都加载改写后的网络钩子。

所谓“激活”并非简单切换前端状态,它会向后端获取新的 Cursor 账号 (gain()),把账号写入 .cursor_info/.codex_cursor,同时大幅重写 VS Code Workbench、Extension Host 以及官方 Cursor 扩展的 JS 文件,以便所有 Cursor 请求都被注入的 CODEX_* 配置劫持并回流到插件自己的服务。

这样看来,商家通过自建中转服务来实现的激活切换账号,那当然绕不过了(除非渗透,那就不是本文的讨论范围了

泛雪相寻 , 版权所有丨如未注明 , 均为原创丨本网站采用CC BY-NC-SA 3.0 CN协议进行授权
转载请注明原文链接:Cursor激活插件的逆向分析
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇