我让克劳德分析了 mitmproxy,它逆向工程破解了我健身房应用的 API。

发布日期:2026-04-08 10:00:38   浏览量 :0
发布日期:2026-04-08 10:00:38  
0

2026西湖龙井茶官网DTC发售:茶农直供,政府溯源防伪到农户家 

我使用“起飞”(Liftoff)这款健身房训练记录应用来追踪我的锻炼情况。这款应用非常适合记录组数和次数,但我希望克劳德(Claude)能帮我分析训练数据——建议调整训练计划、发现平台期、标记不平衡问题。问题在于:应用里没有导出按钮,我的数据被锁在了应用内部。

于是我请克劳德帮忙解决这个问题。

克劳德运行 mitmproxy

我告诉克劳德,我想拦截“起飞”应用的网络流量。它一步步指导我完成所有操作——安装 mitmproxy、配置我 iPhone 的代理设置、安装用于 HTTPS 解密的 CA 证书。我只需要按照指示操作,在手机屏幕上点击确认即可。

接着,克劳德运行了 mitmdump,让我打开“起飞”应用并滚动浏览我的训练记录,然后自行读取捕获到的网络流量。

克劳德逆向工程解析 API

通过 mitmdump 的输出,克劳德发现“起飞”使用了 tRPC——一种 TypeScript 远程过程调用框架,会将多个请求打包成特定的封装格式。该 API 托管在一个带版本号的子域名下(v2-12-2.api.getgymbros.com),并且要求使用 iOS 的用户代理字符串。

克劳德完整梳理出了整个 API:

  • 认证流程 —— user.signIn 端点返回访问令牌和刷新令牌,并提供 user.refreshToken 端点用于令牌续期
  • 训练记录端点 —— post.getMyPosts 返回你记录过的所有训练内容
  • 动作类型编码 —— WR 表示重量/次数,AB 表示辅助自重训练,BR 表示自重加阻力训练,DD 表示距离/时长
  • 组数据结构 —— 每组包含类型(热身组或正式组),以及两个输入字段,其含义根据动作类型而变化

我一个数据包都没看过,全部由克劳德完成。

克劳德构建命令行工具

一旦克劳德理解了 API,它就用 Cobra 框架编写了一个 Go 语言命令行工具。该工具处理了认证令牌的存储、自动刷新令牌,以及 tRPC 请求格式。

这个工具随后不断扩展功能:

  • workouts list —— 以 fitdown 或 JSON 格式导出训练记录,支持按日期或动作筛选
  • workouts stats —— 按动作汇总训练量,并生成月度 ASCII 条形图
  • bodyweights stats —— 体重趋势分析,包含平台期检测

我配置了 goreleaser 以支持多平台构建,并创建了 Homebrew 软件源,便于安装:

brew tap DTTerastar/tap
brew install liftoff-export

完美闭环

最让我喜欢的部分是:我开发这个工具的初衷,就是为了把我的训练数据重新传回给克劳德。

现在我可以运行 liftoff-export workouts list --since 6m --json,将过去六个月的结构化训练数据交给克劳德。它能看到我在每个动作中的实际组数、次数和重量,并据此为我提供训练建议——哪些地方需要调整,哪里遇到了瓶颈,哪些方法有效。

克劳德逆向解析了 API,构建了提取数据的工具,现在又利用这些数据指导我的训练。人工智能完成了自身的闭环。

链接

免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。

关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
支持 反馈 订阅 数据
回到顶部