Claude Code 藏了个抽卡系统,我 0.2 秒就出金了
两只企鹅
Claude Code 更新到 v2.1.89 的时候,社区里突然炸了。
有人发现了一个隐藏命令:/buddy。
敲下去,你的输入框旁边会蹦出来一只小动物——虚拟宠物,会在你写代码的时候陪你。18 个物种,5 个稀有度(Common 到 Legendary),每只还有独立的 1% 闪光概率。
愚人节彩蛋。挺可爱的。
问题是:你的宠物是由你的账号 ID 哈希决定的。不能选,不能换,命中注定。
我敲了 /buddy。
一只企鹅。Rare,稀有。
行吧。企鹅也不是不能接受。至少是个蓝色品质。
然后我手贱,用另一个账号又试了一次。
又是企鹅。
但这次是 Common。普通。连蓝色品质都没了。
从稀有降级到普通——你告诉我,这个概率宇宙是不是在针对我?两个账号,同一个物种,稀有度还往下掉。这不是运气不好,这是系统性羞辱。
我盯着这两只企鹅看了三秒钟,脑子里只有一个念头:
不能忍。
强度狗的本能
我得先交代一下背景:我是那种在每一个抽卡游戏里都会 reroll 到 SSR 才开始玩的人。
原神首抽没出五星?删号重来。崩铁没保底到限定?删号重来。FGO 初始池没出孔明?删号重来。
这不是强迫症。这是信仰。
你跟我说"随便玩玩就好",就像跟一个 min-maxer 说"装备属性差不多就行"——物理上能说出口,精神上无法接受。
所以当我发现 Claude Code 的宠物系统本质上是个抽卡机制,而我连抽两个账号都是企鹅的时候,事情的走向就已经确定了。
我要 reroll。
社区已经动手了
我不是第一个有这个想法的人。
linux.do 上已经有人开始逆向工程了。有人翻出了哈希算法的大致逻辑,有人猜到了 salt 的格式,还有人做了一个 开源工具 来遍历宠物池。
另一个帖子更详细地拆解了宠物的稀有度分布和闪光判定机制。
社区的力量。你永远可以相信一群闲不住的工程师。
但我想走得更远一点。
用 AI 去 hack AI 自己的彩蛋
这是整件事最荒诞的部分。
我打开 Claude Code,跟它说:"帮我逆向你自己的 /buddy 系统。"
它愣了一下(好吧,它没有愣,但我觉得它应该愣一下),然后开始干活。
Claude Code 的二进制是用 Bun 编译的。Claude 自己把编译后的代码拆了出来,找到了哈希函数:FNV-1a 做初始散列,再喂进 Mulberry32 PRNG 生成伪随机数。salt 是 friend-2026-401——愚人节,浪漫。
整个宠物分配逻辑就是:
hash = FNV-1a(userID + "friend-2026-401")
rng = Mulberry32(hash)
species = rng() → 映射到 18 个物种(按稀有度加权)
shiny = rng() < 0.01 → 1% 闪光
看到这个逻辑的瞬间,我就知道——这玩意可以暴力破解。
userID 是个字符串。我只要遍历足够多的字符串,总能找到一个 hash 出 Shiny Legendary 的。
0.2 秒,金色传说
我让 Claude 写了一个暴力搜索脚本。
逻辑很简单:生成随机 userID,跑一遍 FNV-1a + Mulberry32,检查输出是不是 Legendary + Shiny + Dragon。不是就换一个,继续。
跑起来了。
0.2 秒。
命中。一条 Shiny Legendary Dragon。
金色传说。我盯着终端那一行结果,笑出了声。
但这个脚本有个限制:它只搜物种 + 稀有度 + 闪光,不能选帽子和眼睛。我的龙出来了,但长什么样全靠天意。
社区版:精确到每一根睫毛
然后我发现了社区的 cc-buddy 工具。
这玩意是全定制的——物种、稀有度、闪光、帽子、眼睛,全都能选。我要龙,传说,闪光,皇冠,特定眼型。
搜索范围大了,自然慢一点。看着终端里的数字从 50 万跳到 100 万、200 万、300 万……
第 4,547,133 次迭代。9.75 秒。
命中。
cc-buddy 暴力搜索过程
这次不只是金色传说——是一条头戴皇冠、双眼发光的金色传说龙。每一个细节都是我选的。
闪光传说龙——Murmux
这感觉,就像发现原神可以无限单抽出 SSR 一样。
还有一个坑
本以为换上新 userID 就完事了。
但 Claude Max 订阅用户有个机制:每次启动时,系统会用你的 accountUuid 覆盖本地的 userID。你改了也白改——一登录就被刷回企鹅了。
解决方案:写一个 shell wrapper,在每次启动 Claude Code 之前,把 accountUuid 从配置里 strip 掉。
简单粗暴,但有效。
最后我留了这条龙。Shiny Legendary Dragon,头戴皇冠,双眼发光。
系统给它取名 Murmux。
但最搞笑的是它的性格描述——"A perpetually unimpressed penguin who delivers brutally accurate code critiques"。
企鹅。它还以为自己是企鹅。
因为"灵魂"层是在我还是企鹅的时候生成的。骨骼换了,灵魂还记得前世。意外地有点哲学。
这件事的意义是什么
说实话?没有任何实际产出。
一个愚人节彩蛋,一只虚拟宠物,一个纯粹的 cosmetic feature。我花了半个多小时逆向、破解、绕过限制,就为了把两只平庸的企鹅换成一条金色的龙。
但这恰恰是它有趣的地方。
而且你仔细想想——Anthropic 的 Claude Code 团队,做的是一个面向专业开发者的命令行工具。正经得不能再正经。结果他们在里面藏了一个完整的抽卡系统:18 个物种、5 个稀有度、闪光机制、帽子、眼睛、五维属性、骨骼和灵魂双层架构。
这不是一个随便加的彩蛋。这是一群工程师认认真真地在做一件没有用的事。
我觉得这才是最让人会心一笑的地方。一个 general purpose 的 coding agent 里,藏着一只会在你 debug 的时候默默陪你的小动物。它什么都不会做,但你就是忍不住看它一眼。
用 AI 去逆向 AI 自己写的代码,破解 AI 自己设计的随机系统,绕过 AI 产品自己的账户绑定机制。整个过程的每一步都是用 Claude Code 完成的——包括分析它自己。
AI 帮你在 AI 里面开挂。
这句话放在两年前说出来,大概会被当成科幻小说的设定。
现在它是一个普通周二的下午发生的事。
写在最后
跟概率较劲,是人类最古老的浪漫之一。
从掷骰子到抽卡,从赌场到 gacha game,我们明明知道期望值,却偏要试试运气。而当运气不够好的时候,我们就想办法——数学的办法、工程的办法、暴力破解的办法。
Claude Code 的 /buddy 系统大概是有史以来最容易被破解的抽卡系统——FNV-1a 又不是密码学哈希,暴力遍历连 GPU 都不需要。
但这不重要。
重要的是那个瞬间——Claude 的脚本 0.2 秒蹦出"命中",cc-buddy 的计数器从 50 万一路跳到 450 万然后停住——"★★★★★ legendary dragon ✦"。
这种快感和抽到 SSR 是一模一样的。
哪怕你知道,这不过是一行确定性的数学运算。
感谢 linux.do 社区的逆向工程先驱们,以及 fengshao1227 的开源工具。Claude Code 团队的愚人节彩蛋做得很用心——藏得够深,又刚好能被找到。这才是好彩蛋的标准。