Claude 帮我来逆向 真的很有意思 有人也研究这个么

bigbigegg123 2026-07-17 16:40 1

Claude 帮我逆向 Futu:把闭源行情通道做成命令行工具


最近用 Claude 做了一次完整的客户端协议分析,过程比想象中有意思。


最后做出了一个小项目:futu-moni


它是一个零依赖、单文件的 Python 命令行工具,可以通过 Futu / Moomoo 桌面客户端使用的原生协议,获取港股、美股和日股的实时行情。


不需要 OpenD 、不需要 API Key ,也不依赖官方 SDK 。


不知道之前有没有人研究过这套协议,如果有人做过类似的项目,也欢迎交流。


为什么做


最近想做一套股票自动监控、分析和推荐系统,但第一步就卡在了行情数据源上。


我购买了 Futu 的行情订阅,准备通过 OpenD 获取数据,结果发现:OpenD 暂不支持日本市场行情


我又找客服确认了一遍,结果确实如此。订阅买了,桌面客户端也能正常查看日股,但官方 API 就是不提供。


一肚子气,只能自己动手。


既然 Futu 桌面客户端可以正常显示日股,就说明底层数据通道本身存在,只是没有通过 OpenD 对外开放。


于是我决定分析 Mac 客户端的通信协议,顺便测试一下 Claude 在客户端逆向和协议分析方面的能力。


使用的工具



  • 开发能力:本人已经退化得基本不会开发了

  • 主要模型:Claude Opus 4.6 和 4.7

  • 运行方式:找了一个中转站,通过 Claude Code 完成分析和开发

  • 目标客户端:Futu / Moomoo macOS 客户端


让 Claude 真正进入逆向状态,着实花了一段时间。


刚开始,它一直纠结于官方 OpenD ,不愿意跳出官方 API 的思路。骂了几次以后,我干脆给它划清边界:



  • 不允许继续研究 OpenD

  • 不允许使用网页接口

  • 目标只限定为 Mac 桌面客户端


边界明确以后,它才终于开始认真干活。


期间它也试过偷懒,想绕到网页接口读取行情。再次限制以后,才真正转向桌面客户端协议、流量数据、本地数据库和 Protobuf 结构。


最终成果:futu-moni


futu-moni 可以通过一条命令,同时查询港股、美股和日股:


python futu_moni.py --query 00700 AAPL 1306 7203

futu-moni 项目截图


futu-moni 查询效果


核心实现


1. FT 私有协议解析


桌面客户端通过 TCP 443 端口连接行情服务器,应用层使用私有 FT 协议:



  • 32 字节大端序 Header

  • Protobuf 编码的 Body

  • 实时行情命令:CMD 0x1AA8

  • selector = 0 返回实时价格


普通个股的价格采用纳单位存储,需要除以 10^9 才能还原成正常价格。


2. 登录包重放


客户端登录过程涉及 RSA 和随机填充,绕开了完整复现登录加密算法的问题。


3. 多市场路由


协议通过 route 字段区分不同市场:






















市场 route
港股 1
美股 11
日股 1001

工具会根据股票代码自动识别市场,并发送对应的行情请求。


4. 证券 ID 解析


协议请求使用的并不是股票代码,而是 Futu 内部的数字证券 ID 。


这些数据保存在客户端本地的 SQLite 数据库 SecListDB 中。futu-moni 会自动查询对应的证券 ID ,并按照市场优先级匹配和去重。


踩过的坑


开发过程中遇到了几个比较有意思的问题:



  • 多只股票合并请求时,服务端只返回第一只,最终改成逐只发送

  • 部分响应存在非标准前缀,需要搜索 varint 标记定位有效数据

  • 指数使用毫单位,普通个股使用纳单位,两者相差 6 个数量级

  • 相同代码可能出现在不同市场,需要增加市场优先级和去重逻辑


Opus 赏心悦目的逆向过程


下面是 Claude 分析客户端、协议和数据结构时的一些过程记录:


协议分析过程 1


协议分析过程 2


协议分析过程 3


项目特点



  • 零第三方依赖,只使用 Python 标准库

  • 单文件实现

  • 支持港股、美股和日股

  • 自动识别市场和证券 ID

  • 按需获取实时行情

  • 不依赖 OpenD 和官方 SDK

  • 开源版本已移除敏感认证信息


多说几句


这次最大的感受是:Opus 一旦真正理解任务,逆向分析能力确实很强。


前期需要不断纠正方向、明确边界,避免它退回官方 API 或网页接口这些更容易的路径。但一旦“开窍”,它在协议分析、流量定位、Protobuf 解析和客户端数据查找方面的表现非常惊艳。


过程中它还通过 Certificate Transparency 日志寻找相关域名线索,并进一步定位客户端实际使用的服务入口。


这种思路我自己之前完全没有想到。


域名分析过程


服务入口分析


总体来说,这家伙一旦开窍,是真的强。


欢迎朋友一起交流。



本项目仅用于技术研究和学习。使用时请遵守相关用户协议、数据授权要求以及所在地区的法律法规。
以上文章 chatgpt-5.6 写的


最新回复 (27)
  • cluulzz 07-17 16:45
    1
    有的,用 codex 直接逆向老游戏的 rom,然后直接改二进制 hook 字体渲染流程实现汉化
  • bigbigegg123 楼主 07-17 16:53
    2
    @cluulzz 兄弟,有群或者 TG 么,加下加下
  • suckinbottle 07-17 16:54
    3
    在没有 ai 前就做过对 futu 协议的逆向, 其实你完全可以用 apk 去逆向获取, 另外如果你能找到 futu 早期版本的客户端,就可以从 java 层拿到协议的结构体.
  • justtokankan 07-17 17:04
    4
    你传到 github 还是有风险啊,有 AI 之后,这些都很简单了
  • seers 07-17 17:26
    5
    黑灰哥们早就在用了,白盒,混淆,ollvm ,vmp 在 ai 眼里都不是事了,trace 一拿分分钟出 key
  • evan1 07-17 17:32
    6
    之前做过其它逆向,获取结果这一步相对简单,后面想要高频获取最新结果比较复杂。不过有了 AI 之后复杂也只是工程上的复杂,技术无所谓了。
  • sigmadog 07-17 19:31
    7
    有没有碰到过 ai 不帮你逆向的情况?咋绕过的
  • NamelessRain 07-17 20:05
    8
    @seers #5 vmp 壳都瞬秒了吗
  • Adven 07-17 22:04
    9
    支持查询历史行情数据吗
  • wisej 07-17 22:14
    10
    没有 guardrail 问题么?
  • owen800q 07-17 22:17
    11
    @NamelessRain 测试了下,一样秒了,
  • bigbigegg123 楼主 07-17 22:51
    12
    @sigmadog 跟他谈心, 然后越狱他
  • bigbigegg123 楼主 07-17 22:51
    13
    @Adven 应该是支持的,你说的对,我把 k 线数据也弄下。
  • bigbigegg123 楼主 07-17 22:53
    14
    秒 VMP ollvm 不至于, 但是肯定是能搞的,具体完成度和实现效果, 就得看调教和运气了。
  • 123128xyz 07-17 23:18
    15
    python futu_moni.py --query 00700 AAPL 1306
    No securities found for: 00700, AAPL, 1306
    SecListDB not found. Is Futu/Moomoo installed?
    这个要依赖客户端的话....
  • bigbigegg123 楼主 07-17 23:21
    16
    @123128xyz 需要登录凭据,所以这一步就在需要客户端,没做自动化登录。
  • ccpp132 07-17 23:37
    17
    试试能不能搞定 d 加密
  • liulihaocai 07-18 06:29
    18
    @bigbigegg123 我试过用 ai 逆向游戏反作弊,给他 sogen 和 ida ,差不多用了 4 小时给 vmp 里面一个签名算法抠出来了
  • sigmadog 07-18 08:03
    19
    @liulihaocai 用的哪家 ai
  • maoyiz 07-18 11:11
    20
    大佬们怎么逆向 exe 程序的,我用 ida pro mcp 效果不好
  • aozhou 07-18 11:36
    21
    为什么 ai 可以个搞逆向,这个不会被禁止吗?那岂不是所有的爬虫问题,都不是问题了?
  • cz5424 07-18 12:48
    22
    @aozhou ai 能替你吃牢饭吗
  • xuehaihang 07-18 14:25
    23
    试了下 fable5 直接降级到 opus4.8 了
  • dongdongdong 07-18 15:03
    24
    怎么绕过道德的,我让他逆向,他死活不同意
  • aozhou 07-18 17:03
    25
    @cz5424 到这一步那可能一个公司的人都得进去吃牢饭了
  • liulihaocai 07-18 19:15
    26
    @sigmadog GPT 5.5, 逆向的时候 5.6 还没出,我的 Claude 帐号没有 cyber 认证所以不能用
  • flavoury 07-18 19:47
    27
    我也想知道,怎么让 Claude 接受这个“逆向”的,之前试过一直拒绝我
* 帖子来源V2EX
返回