bigbigegg123
V2EX  ›  Claude

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

  •  
  •   bigbigegg123 ·
    PRO
    · 1 day ago · 3291 views

    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 写的

    31 replies    2026-07-18 23:17:50 +08:00
    cluulzz
        1
    cluulzz  
       1 day ago
    有的,用 codex 直接逆向老游戏的 rom,然后直接改二进制 hook 字体渲染流程实现汉化
    bigbigegg123
        2
    bigbigegg123  
    OP
    PRO
       1 day ago
    @cluulzz 兄弟,有群或者 TG 么,加下加下
    suckinbottle
        3
    suckinbottle  
       1 day ago
    在没有 ai 前就做过对 futu 协议的逆向, 其实你完全可以用 apk 去逆向获取, 另外如果你能找到 futu 早期版本的客户端,就可以从 java 层拿到协议的结构体.
    justtokankan
        4
    justtokankan  
       1 day ago
    你传到 github 还是有风险啊,有 AI 之后,这些都很简单了
    seers
        5
    seers  
       1 day ago via iPhone   ❤️ 1
    黑灰哥们早就在用了,白盒,混淆,ollvm ,vmp 在 ai 眼里都不是事了,trace 一拿分分钟出 key
    evan1
        6
    evan1  
       1 day ago
    之前做过其它逆向,获取结果这一步相对简单,后面想要高频获取最新结果比较复杂。不过有了 AI 之后复杂也只是工程上的复杂,技术无所谓了。
    sigmadog
        7
    sigmadog  
       1 day ago
    有没有碰到过 ai 不帮你逆向的情况?咋绕过的
    NamelessRain
        8
    NamelessRain  
       1 day ago
    @seers #5 vmp 壳都瞬秒了吗
    Adven
        9
    Adven  
       1 day ago
    支持查询历史行情数据吗
    wisej
        10
    wisej  
       1 day ago
    没有 guardrail 问题么?
    owen800q
        11
    owen800q  
       1 day ago via iPhone
    @NamelessRain 测试了下,一样秒了,
    bigbigegg123
        12
    bigbigegg123  
    OP
    PRO
       1 day ago
    @sigmadog 跟他谈心, 然后越狱他
    bigbigegg123
        13
    bigbigegg123  
    OP
    PRO
       1 day ago
    @Adven 应该是支持的,你说的对,我把 k 线数据也弄下。
    bigbigegg123
        14
    bigbigegg123  
    OP
    PRO
       1 day ago
    秒 VMP ollvm 不至于, 但是肯定是能搞的,具体完成度和实现效果, 就得看调教和运气了。
    123128xyz
        15
    123128xyz  
       1 day ago
    python futu_moni.py --query 00700 AAPL 1306
    No securities found for: 00700, AAPL, 1306
    SecListDB not found. Is Futu/Moomoo installed?
    这个要依赖客户端的话....
    bigbigegg123
        16
    bigbigegg123  
    OP
    PRO
       1 day ago
    @123128xyz 需要登录凭据,所以这一步就在需要客户端,没做自动化登录。
    ccpp132
        17
    ccpp132  
       1 day ago
    试试能不能搞定 d 加密
    liulihaocai
        18
    liulihaocai  
       18h 52m ago
    @bigbigegg123 我试过用 ai 逆向游戏反作弊,给他 sogen 和 ida ,差不多用了 4 小时给 vmp 里面一个签名算法抠出来了
    sigmadog
        19
    sigmadog  
       17h 19m ago
    @liulihaocai 用的哪家 ai
    maoyiz
        20
    maoyiz  
       14h 11m ago
    大佬们怎么逆向 exe 程序的,我用 ida pro mcp 效果不好
    aozhou
        21
    aozhou  
       13h 45m ago
    为什么 ai 可以个搞逆向,这个不会被禁止吗?那岂不是所有的爬虫问题,都不是问题了?
    cz5424
        22
    cz5424  
       12h 34m ago
    @aozhou ai 能替你吃牢饭吗
    xuehaihang
        23
    xuehaihang  
       10h 56m ago
    试了下 fable5 直接降级到 opus4.8 了
    dongdongdong
        24
    dongdongdong  
       10h 19m ago
    怎么绕过道德的,我让他逆向,他死活不同意
    aozhou
        25
    aozhou  
       8h 19m ago
    @cz5424 到这一步那可能一个公司的人都得进去吃牢饭了
    liulihaocai
        26
    liulihaocai  
       6h 7m ago via Android
    @sigmadog GPT 5.5, 逆向的时候 5.6 还没出,我的 Claude 帐号没有 cyber 认证所以不能用
    flavoury
        27
    flavoury  
       5h 35m ago
    我也想知道,怎么让 Claude 接受这个“逆向”的,之前试过一直拒绝我
    bigbigegg123
        28
    bigbigegg123  
    OP
    PRO
       2h 7m ago
    @sigmadog 用的 claude
    bigbigegg123
        29
    bigbigegg123  
    OP
    PRO
       2h 6m ago
    @aozhou 你想办法越狱他,他就很多东西都可以跟你聊了
    bigbigegg123
        30
    bigbigegg123  
    OP
    PRO
       2h 6m ago
    @xuehaihang 然后 4.8 就拒绝你,说你的需求不符合要求不给干,我也试过很烦人。
    bigbigegg123
        31
    bigbigegg123  
    OP
    PRO
       2h 4m ago
    有办法能让 claude 的 opus 不具有这么强的要求检查,我还在研究这个路径。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1279 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 17:22 · PVG 01:22 · LAX 10:22 · JFK 13:22
    ♥ Do have faith in what you're doing.