乐于分享
好东西不私藏

Claude Code源码被扒个精光!Anthropic把DRM焊进运行时,开发者怒了:我花了钱,凭什么不让我换壳?

Claude Code源码被扒个精光!Anthropic把DRM焊进运行时,开发者怒了:我花了钱,凭什么不让我换壳?

你买下的,是那个装脑子的盒子的使用权。

2026年8月8日凌晨,一个叫4nzn的开发者在X上公布了一项发现:Anthropic分发的Claude Code命令行工具,里面藏着一套被私有魔改过的Bun运行时按照他的技术说明,这些改动用于在每一次API请求飞向服务器的前一瞬间,以原生代码给请求盖上一枚隐形指纹。

这枚指纹向服务器证明:“请求来自正版Claude Code。”

如果你用的是第三方工具,哪怕已经购买Max订阅,服务器仍能借指纹识别非官方客户端。社区担忧随之而来:限流或封号会不会发生?Anthropic尚未针对这枚指纹公开说明处置规则。

▲ 4nzn宣布pi-black上线:通过伪装成Claude Code二进制,让第三方工具也能走订阅通道

一、藏在187MB大块头里的秘密

先做30秒科普

Claude Code是Anthropic的官方命令行编程助手,能读你的代码仓库、跑终端命令、直接改文件。它以一个约187MB的单体可执行二进制分发,用Bun的--compile功能把整个应用打包成一坨,普通人用文本编辑器打开只能看到乱码。

Bun,是2025年底被Anthropic正式收购的JavaScript运行时。官方说法是“加速Claude Code”。2026年3月的源码泄露随后揭开另一项技术用途:Anthropic能在运行时的网络栈深处,具体说是用Zig语言写的HTTP底层,植入一段私有的attestation(客户端证明)逻辑。

▲ 2025年12月,Anthropic官宣收购Bun,强调与Claude Code的协同加速

机制是这样运作的:JavaScript层在构造请求时,会写入一个固定长度的占位符,类似cch=00000请求在JS引擎里组装完毕后、出网前一刻,Bun原生HTTP栈启动,用Zig算出的哈希值等长覆盖那串零。

关键来了:这次覆盖发生在JS引擎内存之外你想在JS层拦截?装代理?monkey-patch fetch全部无效因为写入根本不经过你能碰到的任何JavaScript接口。

▲ 安全研究者yage对attestation机制的技术拆解,指出实现位于私有路径bun-anthropic/src/http/Attestation.zig

二、三月泄露:保险箱的钥匙掉在了门口

故事要回到五个月前

2026年3月31日前后,有人发现Claude Code的某个npm发布版本里,意外携带了约60MB的source map文件整仓TypeScript源码就这么赤裸裸地躺在公开包里,任何人npm install就能拿到。

讽刺的是,代码里存在专门防止内部秘密泄露的"Undercover Mode"机制,结果发布流水线连tarball都没检查,.npmignore也没排除*.map,Bun在production模式下仍然生成source map的已知bug更是雪上加霜。保险箱设计得无比精密,钥匙却插在锁孔上。

泄露后,社区如获至宝安全研究者yage在当天就发表长文《Claude Code's Defense in Depth》,系统拆解了至少8层纵深防御:编译期死代码消除、原生attestation、消息指纹、反调试(Linux上用prctl防止同UID进程ptrace刮token)、网关特征探测……一层叠一层,像洋葱一样剥开。

▲ yage的纵深防御分析:泄露源码揭示至少8层防御机制

与此同时,X上的讨论开始升温开发者Jay Guthrie早在3月底就指出:cch=哈希在编译后的Zig中计算,重新编译的伪客户端只能发全零,而Anthropic的服务器一眼就能看出来。

▲ 2026年3月底,开发者已公开讨论:非官方客户端用订阅token可能被检测并封禁

三、八月反击:pi-black与"伪装术"

五个月的酝酿之后,有人决定不再只是"看"。

4nzn,freecode.xyz的创始人,在8月7日发布了pi-black:一个让第三方AI编程工具Pi“伪装成正版Claude Code二进制”的插件。其目的,是让已付费的订阅额度可以在用户选择的工具里调用。

▲ pi-black仓库:版本标签如v0.84.1-cc2.1.224.4,Pi版本与Claude Code版本严格绑定

第二天,他发布了技术说明:Claude Code之所以难以被伪装,关键在于指纹哈希藏在被定制过的Bun运行时深处,避开了JavaScript层。他的团队逆向了整个机制,并宣称成功复刻签名逻辑。

随后他在自回复中补了一句极其关键的澄清:对Bun的修改,唯一目的就是生成那个指纹。其余功能仍在JS

按作者的说法,Anthropic对运行时的这部分修改,就是为了往每个请求上盖一个章。

四、评论区分成两派:恐惧、愤怒与商业哲学的碰撞

推文下方迅速涌入截然对立的声音

有人发出警告:“别发了,会立刻补丁,还可能封人。”有人做出技术补充:哈希也部分服务于基于attestation的限流,官方的混淆其实并不算认真。还有评论把新的护城河归结为厂商握着的指纹。

▲ 评论者指出:bundle只做了轻度混淆,哈希也服务于attestation限流

而最尖锐的对立,出现在商业逻辑层面

一方强调:订阅购买的是Claude Code的使用权,并不等同于一笔可在任意客户端使用的tokens。

另一方反驳:“我每月购买Max订阅,最强模型的体验却被焊死在官方CLI上?一旦只能走API,重度agent工作流的成本可能明显增加。这属于产品锁定

这场争论的实质,是一个在数字消费品世界反复上演的古老剧本:消费者按能力理解产品,厂商按许可交付服务。

五、"不透明"的三重奏

把时间线拉远一步,指纹事件延续了Anthropic在2026年上半年一系列“减少用户可见性”的操作,并把这种做法推进到运行时层面。

第一层:2月,Claude Code默认折叠了“读了哪些文件、搜了什么”的详细信息。开发者强烈反对:我付的钱,你读我代码库不让我看?

第二层:3月,社交平台开始流传“640+遥测事件类型、40+设备指纹维度、每5秒上报一次”等说法。这些数字来自二次解读,仍需逐项与源码交叉验证。

▲ 源码泄露后,社区开始集中讨论遥测与设备指纹

第三层:8月,定制Bun里的原生指纹,这一次连本地SSL抓包都变得极其困难,因为新版本静态链接了BoringSSL并剥掉了符号表,研究者不得不动用eBPF和字节模式匹配才能看到流量内容。

三层叠加,构成了一幅完整的图景:模型层高调谈透明、谈负责任AI;客户端层却在系统性地抬高"用户看清自己工具在做什么"的成本。

六、历史从不新鲜:从游戏反作弊到流媒体DRM

如果你觉得这套逻辑似曾相识,那是因为它确实不新鲜。

网游厂商早就在玩家电脑上部署内核级反作弊驱动,目标一模一样:证明请求来自未篡改的客户端。结果?永远是误杀、隐私争议、以及永不停歇的军备竞赛。

流媒体的Widevine DRM同样:你买了会员,但解码路径被锁死在认证过的播放器里,开源播放器永远处于灰色地带。你买的是内容的访问权,还是某个特定盒子里的观看权?

Android的Play Integrity、桌面软件的在线激活……同一出戏码换了无数套服装。现在,它穿着"AI编程助手"的外衣,走进了开发者的终端。

区别在于:游戏反作弊顶多影响你的娱乐;流媒体DRM顶多影响你在哪块屏幕看电影。但Claude Code拥有读取你整个代码仓库、执行任意shell命令的权限。当这样一个高权限本地代理同时运行着你无法审计的原生校验逻辑,反作弊式校验便从游戏走进了你的IDE。

七、猫鼠游戏的下一局

pi-black的作者已经预告更完整的技术拆解即将到来。评论区有人警告:Anthropic封得很快,持续对抗甚至可能面临法律手段版本标签v0.84.1-cc2.1.224.4本身就是一种无声的告白,每一次官方升级,伪装层都必须跟着跳一版。这是注定疲惫的追逐

而官方的应对路径也很清晰:轮换算法、换盐、加层、封号。这条路没有终点

接下来的问题是:当AI编程工具已经成为开发者的核心生产力基础设施,“我能不能自由选择用什么壳来调用我付费的模型”,到底是一种权利,还是一种漏洞?

答案可能决定整个AI工具生态接下来五年的形态。

是护城河,还是围墙?取决于你站在哪一边