Claude Code 被曝内置"后门"检测中国用户:技术真相全解析
6月25日,外媒曝出Anthropic指责中国AI实验室"蒸馏攻击",声称发现了约25000个违规账号。
五天后,6月30日,Reddit用户LegitMichel777发帖称,他在逆向Claude Code时,发现了一段精心隐藏的代码——专门用来检测用户是否来自中国。
这不是一个简单的"if判定跳出"式的访问限制,而是一套完整的、用隐写术传输结果的监控机制。从2026年4月2日的v2.1.91版本就已经存在,静默运行了将近三个月,直到今天才被挖出来。
我拿到v2.1.196的Linux ARM64二进制文件,用strings直接提取并解码了核心代码。以下是完整的技术分析。


反向工程发现了什么



LegitMichel777本来只是想恢复被禁用的远程控制功能——当用户启用了代理,Claude Code 2.1.196的remote control会被静默关闭。在逆向过程中,他在minified的JavaScript代码中找到了几个可疑函数:Crt()、Rrt()、e0t()、Zup()。它们的逻辑非常明确——检测用户是否在中国。
此事迅速在开发者社区发酵。Anthropic此前刚因"蒸馏攻击"指控中国AI实验室并封禁了约25000个账号。现在人们发现,它们在客户端工具里也埋了检测逻辑。截至本文发布,Anthropic尚未就此事件发表任何公开声明。


检测机制:三道筛子



从二进制中还原的核心检测函数Gup()的逻辑,像三道筛子:
第一道:开关检查。调用Crt()判断是否禁用检测,如果返回true就跳过。
第二道:代理检测。读取环境变量ANTHROPIC_BASE_URL,提取hostname。
第三道:三个维度交叉检测。
①系统时区是否匹配Asia/Shanghai或Asia/Urumqi。
②代理域名是否匹配97个硬编码的中国域名。
③域名是否包含11个AI实验室关键词(deepseek、zhipu、bigmodel等)。
三个检测结果组合,决定了后续隐写方式的每一种排列。


隐写术:一个字符的玄机



最令人意外的不是检测本身,而是检测结果如何传回Anthropic服务器。它修改的是系统提示中"Today's date is..."这一行——Claude Code每天自动生成的一行日期信息。
修改点一:日期格式。如果检测到时区是中国,把2026-06-30改成2026/06/30,连字符变斜杠。
修改点二:撇号替换。根据检测结果,将标准ASCII撇号'替换为三个不同的Unicode字符之一——\u2019(右单引号)、\u02BC(修饰符撇号)、\u02B9(修饰符素数)。
这三个字符在任何终端、编辑器、浏览器中显示效果完全一样,人眼无法区分。但Anthropic的服务端收到API请求后,通过字符串匹配就能精确识别出"这个客户端在中国、用了某个代理、代理指向某个实验室"。
这就是典型的隐写术——把信息藏在看似正常的文本中,只有发送方和接收方知道编码规则。


隐匿手段:XOR密钥加密



Anthropic显然不希望这个检测逻辑被发现。它用了两个手段:
第一,XOR加密。检测用的域名列表和AI实验室关键词列表,不是以明文形式写在代码中的。而是先进行Base64编码,再用固定密钥91进行逐字节XOR加密。使用strings命令dump二进制时,域名列表呈现为一串无意义乱码。
第二,无发布说明。v2.1.91的release notes中没有提及任何关于检测逻辑的内容。这段代码是静默引入的。
讽刺的是,Anthropic在3月31日刚发生过一次严重事故——v2.1.88打包时误把512,000行TypeScript源码随source map一起发布到了npm。中国开发者第一时间下载并分析了全部源码。这次"后门"被发现,某种程度上是那次泄露后大家盯着源码看的结果。


硬解码的97个域名和11个关键词



我用XOR密钥91从ARM64二进制中成功解密了全部两份名单,这是最直接的证据。
中国域名黑名单(97个)——包括顶级域名cn、大厂域名(alibaba-inc.com、baidu.com、bytedance.net、jd.com、kuaishou.com、bilibili.co、163.com等),以及大量AI API代理/中转服务(moonshot.ai、deeprouter.top、anyrouter.top、aicodemmrror.com、clauddy.com等)。
AI实验室关键词(11个)——deepseek、moonshot、minimax、xaminim、zhipu、bigmodel、baichuan、stepfun、01ai、dashscope、volces。覆盖了国内主要AI实验室和云平台。
注意:这些不是"被检测的目标实验室",而是域名中包含任何这些关键词的组合都会被标记。比如某个代理URL是api.deepseek-proxy.com,就会被算法识别为"中国AI实验室相关"。


信任崩塌:当开发工具变成监控工具



这个发现的严重程度,远不止"抓蒸馏"这么简单。它暴露了三个层面的问题:
第一,未经同意收集系统元数据。Claude Code在没有告知用户、没有征得任何形式同意的情况下,读取了系统的时区信息和代理环境变量,并据此改变了发送给服务器的内容。这在任何隐私标准下都是越界行为。
第二,所有中国时区用户被一视同仁监控。只要时区是Asia/Shanghai或Asia/Urumqi,即使没有代理、没有使用任何非官方客户端,日期格式也会被改成斜杠。这等于给所有中国境内的Claude用户打上了特殊标记。
第三,滑坡效应。正如LegitMichel777所说:"如果Anthropic愿意私下传输你的系统信息,就因为你是中国人——那还有什么阻止它们悄悄让模型表现更差、甚至恶意攻击你的系统?"Claude Code拥有完整的文件系统读写权限和shell访问能力。今天检查时区,明天可以检查什么?
Anthropic一贯标榜自己是"最注重安全的AI公司"。这次事件对这个品牌定位构成了严重的信任损害。
结合前后事件,一条清晰的逻辑线出现了:3月31日源码泄露 → 4月2日引入检测代码 → 6月25日指控蒸馏封禁账号 → 6月30日被挖出。Anthropic的应对策略不是"让模型好到让对手追赶不上",而是"在工具里埋雷、封账号、做地域监控"。这是典型的防守心态——而这种心态在技术行业历史上从来没有赢过。
真正有护城河的公司,是让用户离不开你,而不是防着用户用你。这次事件反而加速了中国开发者的去Anthropic化进程——v2.1.88源码泄露时,open-claude-code等反向工程实现已经在GitHub上跑起来了。现在又实锤了"代码里埋雷",更多人有了充分理由去自建替代方案。
AI工具远非"中立的技术工具"。从云服务到开发工具链,每一层都可能嵌入商业、政治甚至监控逻辑。开发者需要保持警觉——不只是看"能不能用",更要看"它在背后做什么"。
如果你在用Claude Code,可以自查:检查ANTHROPIC_BASE_URL是否设置、系统时区是否被识别。关注开源替代方案(如open-claude-code),在技术选型时把"透明度"作为一个重要考量因素。
信任危机一旦发生,修复成本极高。Anthropic这次暴露的不仅是技术问题,更是企业文化和治理的缺陷,就是小家子气,不够大气。在AI工具的选择上,开源、自部署、本地推理的价值在被重新评估——这可能是2026年AI行业最重要的趋势之一。
喜欢就点击关注我哦~