【代码】逆向拿到 Claude Code cch 生成算法
- 内容介绍
- 文章标签
- 相关推荐
就是个小玩具,直接放代码吧:
import xxhash
body = open('/tmp/body.json', 'rb').read() # body 中 cch=00000
h = xxhash.xxh64(body, seed=0x6E52736AC806831E).intdigest()
cch = f"{h & 0xFFFFF:05x}"
print(cch)
懂的一看就知道用了,无任何使用限制,无任何速率限制。
就是简单展示一下,忆往昔逆向岁月,没有别的意思
原来早就有人发过了啊。那我就简单记录一下逆向过程吧,其实还挺简单的。我是在 macOS arm64 上操作的。
首先给 claude bin文件去除签名,然后重新签名。否则无法 attach 进程。
重新签名后的文件,使用 HTTPS_PROXY=http://127.0.0.1:8888 NODE_TLS_REJECT_UNAUTHORIZED=0 ./claude-unsigned 启动,直接能拦截网络请求。
直接掏出 lldb -p <pid> 给 attach 上。
拿出 Charles,我们要做的就是在 https://api.anthropic.com/v1/messages 请求上加断点。
反正思路就是 Charles 拦截到请求后,立刻 (lldb) process interrupt 给断下来。
一通搜索(这是个力气活,还需要一些运气,枯燥且乏味,按下不表),找到了几个可疑的点 0x1018c6ef8、0x101b27200、0x101f798e0 断点直接上去,然后 continue。
就是个小玩具,直接放代码吧:
import xxhash
body = open('/tmp/body.json', 'rb').read() # body 中 cch=00000
h = xxhash.xxh64(body, seed=0x6E52736AC806831E).intdigest()
cch = f"{h & 0xFFFFF:05x}"
print(cch)
懂的一看就知道用了,无任何使用限制,无任何速率限制。
就是简单展示一下,忆往昔逆向岁月,没有别的意思
原来早就有人发过了啊。那我就简单记录一下逆向过程吧,其实还挺简单的。我是在 macOS arm64 上操作的。
首先给 claude bin文件去除签名,然后重新签名。否则无法 attach 进程。
重新签名后的文件,使用 HTTPS_PROXY=http://127.0.0.1:8888 NODE_TLS_REJECT_UNAUTHORIZED=0 ./claude-unsigned 启动,直接能拦截网络请求。
直接掏出 lldb -p <pid> 给 attach 上。
拿出 Charles,我们要做的就是在 https://api.anthropic.com/v1/messages 请求上加断点。
反正思路就是 Charles 拦截到请求后,立刻 (lldb) process interrupt 给断下来。
一通搜索(这是个力气活,还需要一些运气,枯燥且乏味,按下不表),找到了几个可疑的点 0x1018c6ef8、0x101b27200、0x101f798e0 断点直接上去,然后 continue。

