V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
MegatronKing
V2EX  ›  程序员

新一代国产 API 抓包调试工具 Reqable

  •  4
     
  •   MegatronKing · 247 天前 · 11887 次点击
    这是一个创建于 247 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Reqable是一款跨平台的专业 HTTP 开发和调试工具,在全平台支持 HTTP1 、HTTP2 和 HTTP3(QUIC)协议,简单易用、功能强大、性能高效,助力程序开发和测试人员提高生产力!

    1. 介绍

    Reqable 的特点是简洁美观,基本功能免费,无需登录,安装即用。

    • 20M 左右的安装包体积。
    • 跨平台,基于 Flutter 和 C++开发。
    • 支持亮色和暗色两种主题模式。
    • 支持 11 种不同的强调色。
    • 支持 Atom One 主题代码高亮配色。

    screenshot_zh_01.png

    Reqable 桌面端支持 Windows/Mac/Linux 三大主流平台,具备抓包调试和 API 测试两大基本功能,可以将其看成是 Fiddler/Charles + Postman 。

    Reqable 打通了 API 调试和测试之间的壁垒,例如可以从抓包数据中创建 API 进行测试,也可以在 API 测试时进行流量抓包分析。

    • 支持 HTTP/1.x, HTTP2 协议版本,HTTP3(QUIC)暂不支持。
    • 支持 HTTP/HTTPS/Socks4/Socks4a/Socks5 代理方式。
    • 支持 HTTPS ,TLSv1.1 、TLSv1.2 和 TLSv1.3 加密协议。
    • 支持基于 HTTP1 升级的 WebSocket 协议。
    • 支持 HTTP/HTTPS 二级代理(调试境外流量)。
    • 搜索筛选:提供书签、域名、快捷筛选栏和多条件等高级搜索方式。
    • 网关功能:对指定请求或响应进行屏蔽,挂起等操作。
    • 重写功能:预设规则对指定请求或响应进行重定向、替换或者修改。
    • 断点功能:对请求或响应进行实时断点操作,比如屏蔽,挂起或修改替换数据等。
    • 脚本功能:支持编写 Python 脚本处理实时请求或响应。
    • 镜像功能:对指定域名和端口配置镜像映射。
    • 测试联动:支持从调试列表创建 API 进行测试。
    • 历史记录:自动保存抓包的流量数据,方便回溯查看。
    • 重发回放:支持单个或多个请求进行回放测试。
    • 自动高亮:支持设定自定义规则对请求进行多种颜色高亮。
    • HAR 支持:自动关联 HAR 格式文件,并支持 HAR 导出和导入。

    2. 安装证书

    Reqable 使用经典的中间人( MITM )技术分析 HTTPS 流量,当客户端与 Reqable 的代理服务器(下文简称中间人)进行通信时,中间人需要重签远程服务器的 SSL 证书。为了保证客户端与中间人成功进行 SSL 握手通信,需要将中间人的根证书(下文简称CA 根证书)安装到客户端本地的证书管理中心。

    如果目标客户端是 PC 应用程序,CA 根证书需要安装到 PC 的证书管理中心;如果目标客户端是移动端 App 应用程序,CA 根证书则需要安装到手机的证书管理中心。如果没有流量分析的需求,可以忽略这一步。

    Reqable 会为每个用户自动生成完全不同的 CA 根证书,并使用随机的证书密钥,所以不必担心此证书会被第三方利用。

    2.1 桌面端安装

    不同的桌面端平台(这里主要是 Windows/MacOS/Linux ),证书安装方式有所不同,为了简化安装过程,Reqable 提供了一键安装证书的功能。

    证书的安装入口位于顶部操作栏,点击盾牌图标打开弹窗。

    installation_01.png

    直接点击现在安装

    installation_02.png

    点击后系统会弹出确认弹窗或者输入账户密码进行授权,按照提示操作确认即可。不出意外的话,证书会自动安装成功;如果自动安装失败,可以切换到手动安装的 Tab 按照步骤手动安装。

    installation_03.png

    注意,在 Linux 设备上 Chrome 和 Firefox 浏览器有内置的证书管理系统,还需要将 CA 根证书安装到浏览器的证书管理系统中,请按照 Reqable 内的提示进行操作。

    CA 根证书未安装或安装失败时,盾牌图标显示为黄色;安装成功后,盾牌图标显示为绿色。

    2.2 移动端安装

    如果有分析移动端应用的需求,必须在移动端安装 CA 根证书。Reqable 中内置了 Android 和 iOS 证书安装的指引,请切换到AndroidiOS的 Tab 按照步骤进行安装。

    installation_04.png

    由于 Android 7.0 起不再信任用户证书,需要将 CA 根证书安装到系统证书目录,这要求能够 Root 设备并解锁 System 分区。

    3. 分析流量

    在 API 调试中,获取流量是第一步也是最基本的操作,这里讲解下如何使用 Reqable 获取流量,通俗地讲就是抓包。

    首先,需要启用 Reqable 的调试功能,点击最右上角的启动按钮进入调试状态。在调试状态下,任何 HTTP 请求经过 Reqable 的 MITM 代理服务器都会显示到界面上。

    为了保证流量经过 Reqable 的 MITM 代理服务器并信任 Reqable 的 CA 根证书,请检查下面两项:

    • 系统代理状态

    如果系统代理已经设置,网络图标是绿色;如果系统代理未设置,网络图标是黄色,点击网络图标可以自动设置系统代理。

    • CA 根证书状态

    如果 CA 根证书安装成功,盾牌图标是绿色;如果 CA 根证书未安装成功,网络图标是黄色,点击盾牌图标可以进入 CA 根证书安装界面,详细步骤请阅读上一节。

    一切就绪后,我们可以看到如下的界面:

    traffic_01.png

    打开浏览器,输入地址 https://reqable.com 并回车,这里演示使用的是 Chrome 浏览器。回到 Reqable ,调试列表中已经捕获到了该网站的全部请求数据。

    traffic_02.png

    我们可以选择一个图片请求,双击打开详情面板,能够看到该请求的详细信息。注意,再次双击该请求,可以关闭详情面板。

    traffic_03.png

    点击侧边栏的工作台图标,打开调试列表的工作面板。然后展开reqable.com此域名的结构树,可以查看该域名下所有请求的目录结构,点击选择可以查看该请求的详情。

    traffic_04.png

    点击最右上角垃圾篓图标(快捷键 Control + Shift + R )可以清空列表。

    这里,我们已经完成了获取流量最基本的操作了。

    4. 开始调试

    捕获到流量之后,开始使用调试功能进行数据模拟等各种测试。Reqable 提供了非常强大的调试功能,主要有重写、断点和脚本功能,下面分别来进行介绍。

    4.1 重写

    重写是 Reqable 的核心调试功能之一,通过预设规则自动修改请求或者响应。重写功能可以通过四种方式启用或关闭:

    • 直接点击重写图标
    • 右键重写图标 -> 启用/禁用
    • 托盘 -> 重写 -> 启用/禁用
    • 快捷键 Shift + Control + K

    当重写功能开启后,快捷操作栏( Quickbar )上的重写图标将变为绿色激活状态。

    rewrite_01.png

    Reqable 的重写支持下面 5 种模式。

    4.1.1 重定向

    重写重定向提供了非常细粒度的重定向操作,例如一个客户端请求 A:https://hello.com/foo,可以重定向为返回请求 B:https://world.com/bar 的结果。

    rewrite_12.png

    4.1.2 替换请求

    表示整体替换请求数据,支持替换的部分包括:请求方法、请求路径、请求头和请求体。从流量列表创建重写-替换请求规则,可以自动带入原始请求数据,我们可以在其他基础上进行修改。替换的时候,也可以选择一个本地文件进行替换。

    rewrite_05.png

    4.1.3 修改请求

    相比于替换请求,修改请求提供了更加细致化的修改策略。例如删除查询参数,修改请求头中的某一项,正则替换请求体的内容,适合动态修改。

    rewrite_09.png

    4.1.4 替换响应

    基本操作同上面替换请求

    4.1.5 修改响应

    基本操作同上面修改请求

    4.2 断点

    断点是 Reqable 的核心调试功能之一,通过设定匹配规则,触发断点后实时控制和修改请求和响应。断点功能可以通过四种方式启用或关闭:

    • 直接点击断点图标
    • 右键断点图标 -> 启用/禁用
    • 托盘 -> 断点 -> 启用/禁用
    • 快捷键 Shift + Control + B

    当断点功能开启后,快捷操作栏( Quickbar )上的断点图标将变为绿色激活状态。

    breakpoint_01.png

    接下来新建一个断点规则:

    breakpoint_02.png

    输入规则名称和匹配的 URL ,URL 支持简单的 Wildcard * 和 ? 匹配。完成后,当请求或响应发生时,便可以进入断点操作界面。

    breakpoint_03.png

    我们可以在这个页面上,修改数据然后提交。

    每个断点请求(响应)有180s的时间进行操作,超时后断点会自动失效,暂停住的请求和响应会继续。

    4.3 脚本

    脚本是 Reqable 的核心调试功能之一,支持编写 python 脚本处理 HTTP 请求和响应。Reqable 提供了一套基于 Python 的 API ,在脚本中,我们可以对请求和响应的数据进行修改、替换或者删除,甚至还可以中断请求和响应。除了使用 Reqable 内置的 API ,用户还可以使用自己安装的各种 Python 包,例如 requests 等。

    脚本功能可以通过四种方式启用或关闭:

    • 直接点击脚本图标
    • 右键脚本图标 -> 启用/禁用
    • 托盘 -> 脚本 -> 启用/禁用
    • 快捷键 Shift + Control + P

    当脚本功能开启后,快捷操作栏( Quickbar )上的脚本图标将变为绿色激活状态。

    script_01.png

    脚本使用 python3 运行,必须使用 python3 的语法。脚本提供两个函数调用入口:onRequestonResponse,顾名思义即请求和响应。

    script_02.png

    脚本修改后会自动保存,也可以手动使用快捷键 Control + S 立即保存。

    下面是脚本的功能代码示例:

    def onRequest(context, request):
      # 打印请求方法,例如:POST
      print(request.method)
      # 打印请求路径,例如:/foo
      print(request.path)
      # 打印请求参数列表,例如:[('foo', 'bar'), ('hello', 'world')]
      print(request.queries)
      # 打印请求头列表,例如:['host: reqable.com', 'content-length: 6', 'content-type: text/plain']
      print(request.headers)
      # 打印请求体,例如 {"foo":"bar"}
      print(request.body)
    
      # 修改请求方法
      request.method = 'GET'
      # 修改请求路径
      request.path = '/bar'
    
      # 修改请求参数,更多 API 请参考下文`CaptureHttpQueries`
      request.queries['foo'] = 'bar'
      # 直接赋值请求参数
      request.queries = 'foo=bar&hello=world&abc=123'
      request.queries = {
        'foo': 'bar',
        'hello': 'world',
        'abc': '123'
      }
      # 删除指定请求参数
      request.queries.remove('foo')
    
      # 修改请求头,更多 API 请参考下文`CaptureHttpHeaders`
      request.headers['content-type'] = 'application/json'
      # 直接赋值请求头
      request.headers = [
        'content-type: application/json',
        'foo: bar'
      ]
      # 删除指定请求头
      request.headers.remove('foo')
    
      # 将文本设置给 Body
      request.body = 'Hello World'
      # 将字典设置给 Body ,会自动转成 JSON
      request.body = {
        'foo': 'bar',
        'abc': 123
      }
      # 将二进制数据设置给 Body
      request.body = b'\x01\x02\x03\x04'
      # 将本地文件设置给 Body
      request.body.file('/User/Reqable/Desktop/test.png')
    
      # JSON 类型的 Body 转成字典
      request.body.jsonify()
      # 然后操作字典来修改 Body
      request.body['foo'] = 'bar'
      request.body['error'] = {
        'code': 1000,
        'message': 'Runtime Error'
      }
    
      # Done
      return request
    

    更多的脚本 API 可以参考文档: https://reqable.com/zh-CN/docs/capture/addons

    5. API 测试

    API 测试是 Reqable 的两大基本功能之一,帮助开发者调试接口 API 。Reqable 目前支持 HTTP1.1 、HTTP2 和 HTTP3 ( QUIC )协议,核心网络库采用的是Cronet,业内技术最领先的 HTTP 网络请求框架。

    • 支持 HTTP/1.1, HTTP2 和 HTTP3(QUIC)协议。
    • 多个会话:支持创建多个 Tab 进行 API 测试。
    • 批量编辑:支持批量编辑请求参数、请求头、表单等。
    • 授权设置:支持 API KEY 、Basic Auth 和 Bearer Token 等授权方式。
    • 代理设置:支持自定义代理配置,系统代理和调试代理等。
    • 性能测试:可以查看请求在不同环节的耗时数据。
    • Cookie 管理:自动保存 Cookie 或在请求头中自动加入关联的 Cookie 。
    • 历史记录:自动保存发送的请求和响应数据,方便回溯查看。
    • cURL 支持:可以导入和导出 cURL 。
    • 代码生成:支持 java/python/go/javascript/kotlin 等主流网络框架代码生成。

    screenshot_zh_02.png

    Reqable 支持将 API 请求收藏到集合中,并可以随时打开编辑。同时,Reqable 还支持导入 Postman 等格式的 API 集合,并且可以将调试列表中的 API 保存到集合。

    collection_04.png

    6. 结尾

    Reqable 还提供了非常多实用的功能,包括 API 测试、重发回放、代码生成等,最关键的是 Reqable 是可以免费使用的,下载即用,无需注册无需登录。

    欢迎大家支持!

    125 条回复    2024-03-25 14:29:07 +08:00
    1  2  
    lingling47
        1
    lingling47  
       247 天前
    win7 无法使用 公司的电脑太垃圾了
    MegatronKing
        2
    MegatronKing  
    OP
       247 天前
    @lingling47 Reqable 是基于 Flutter 框架开发的,由于 Flutter 本身不支持 win7 ,所以没办法。工欲善其事,必先利其器,这个简单道理,但很遗憾的是很多当领导的没这个意识,哎。
    lingling47
        3
    lingling47  
       247 天前
    @MegatronKing 谢谢哦
    ochatokori
        4
    ochatokori  
       247 天前 via Android
    在 v 站就不要带上国产这个词了
    zzNucker
        5
    zzNucker  
       247 天前
    看功能挺好的,支持一下
    skiy
        6
    skiy  
       247 天前
    Linux 安装后,运行不了。好像是依赖 gtk3 的?
    而且,二进制文件跑到 /usr/share/reqable/ 目录中了,这样的目录不合理吧?我看了下安装的软件,大都是在 /opt 目录下。
    zzNucker
        7
    zzNucker  
       247 天前   ❤️ 20
    @ochatokori 国产咋了?

    质量好 V 站也总会有明白人支持的
    littlesubgirl
        8
    littlesubgirl  
       247 天前 via Android
    flutter 开发的界面就是有点怪怪的感觉,比 ele 还怪。

    左上角“文件”二字,显示异常,4k ,250%缩放。

    整个菜单文字,显示怪怪的。英文无异常。
    oIMOo
        9
    oIMOo  
       247 天前
    建议上 brew
    hyqCrystal
        10
    hyqCrystal  
       247 天前
    👍
    zeonluang
        11
    zeonluang  
       247 天前
    cool 支持导入 postman 的历史数据吗?
    danbai
        12
    danbai  
       247 天前
    可以,在用了
    oIMOo
        13
    oIMOo  
       247 天前
    macOS 13.5.1
    应用主界面点击 + ( Traffic 右侧),url 里输入任意内容,应用闪退、浏览器网络阻断
    liuidetmks
        14
    liuidetmks  
       247 天前   ❤️ 3
    用来用去,还是 Charles 最顺手
    leo97
        15
    leo97  
       247 天前 via Android
    不是开源的?
    mainjzb
        16
    mainjzb  
       247 天前
    flutter 支持 win7 吧,是有些包不支持 win7
    MegatronKing
        17
    MegatronKing  
    OP
       247 天前
    @zeonluang 支持集合 collection
    ochatokori
        18
    ochatokori  
       247 天前 via Android
    @zzNucker #7 道理是这个道理
    MegatronKing
        19
    MegatronKing  
    OP
       247 天前
    @mainjzb 严格意义上来说你是对的,win7 是 best effort 。
    MegatronKing
        20
    MegatronKing  
    OP
       247 天前
    @skiy 依赖 gtk3 。安抓包是 deb 格式的,至于安装到哪个目录,是不是应该是 installer 的问题。
    beixiao
        21
    beixiao  
       247 天前 via iPhone   ❤️ 1
    试用了一下
    1. 安卓设备导入证书还没有 Charles 方便,建议加个保存到本地的选项。
    2. 第一次保存证书后就找不到那个弹窗了,要去官网看文档才行,不够易用。
    3. 字体不能够更改样式和粗细,win 看起来效果并不好

    免费版限制太多,基本没法用了
    MegatronKing
        22
    MegatronKing  
    OP
       247 天前
    @oIMOo 不好意思,macOS 13.5 我还没有测试过,做多只测试到 13.4 。不过感谢反馈,我马上测试下。
    zeonluang
        23
    zeonluang  
       247 天前
    试用了下,免费的 api 集合太少了。刚打算从 postman 导入几个集合过来就报错了
    cctrv
        24
    cctrv  
       247 天前 via iPhone
    能抓 flutter 寫的嗎?
    每次抓 flutter 我去路由器抓實在太累了。
    Goooler
        25
    Goooler  
       247 天前
    支持一下,从 HttpCanary 以来就非常好用
    deplivesb
        26
    deplivesb  
       247 天前   ❤️ 3




    还没做的功能就不要去作为宣传点
    MegatronKing
        27
    MegatronKing  
    OP
       247 天前
    @deplivesb 不好意思,是我这篇文章写的不严谨。API 测试和抓包是 Reqable 的两大核心功能,API 测试是支持 HTTP3(QUIC)协议的,抓包目前还没有实现。准确地说 HTTP3(QUIC)是部分支持,这个在官网首页有说的。
    eluotao
        28
    eluotao  
       247 天前
    就冲 httpcanary 我已付费支持了。
    eluotao
        29
    eluotao  
       247 天前
    希望支持全部记录导出成 txt 或者 其他能用 vscode 打开的格式,方便本地做其他处理。目前只能导出 har 格式,不好用,也只能写脚本另外保存,其实很多时候,我只是想保存。
    lincanbin
        30
    lincanbin  
       247 天前
    不错,为数不多的 UI 长得还挺好看的工具
    adsryen
        31
    adsryen  
       247 天前 via Android
    不会只有我打不开这图床吧
    oIMOo
        32
    oIMOo  
       246 天前
    @MegatronKing #22 感谢,求更新之后圈我一下。我想分享 log 来着,看了包内容没有 log……
    kneo
        33
    kneo  
       246 天前 via Android
    不开源,以后收费吗?
    ayang23
        34
    ayang23  
       246 天前
    挺好,收藏
    peefy
        35
    peefy  
       246 天前
    不错 👍👍 看到最后还是开源的,学习一下
    CLx2GaS5tw
        36
    CLx2GaS5tw  
       246 天前
    eagleoflqj
        37
    eagleoflqj  
       246 天前 via iPhone
    @peefy 我想起了前一阵 v 站吵项目在 GitHub 挂壳算不算虚假开源😂
    MegatronKing
        38
    MegatronKing  
    OP
       246 天前
    @peefy 不是开源的,Github 仓库是管理需求和用户反馈的,Readme 有清楚写着。类似 Postman 等知名产品,都是使用 github 作为管理工具。
    MegatronKing
        39
    MegatronKing  
    OP
       246 天前
    @oIMOo 😓M2 本子升级到 13.5.1 了,并没有遇到闪退的情况,尴尬。
    aflow
        40
    aflow  
       246 天前
    使用限制能不能不要限制操作系统,公司和家里都是 windows 机器,回家用的时候又要重新激活下。
    另外都是订阅制了,不添加点云服务的功能吗,比如同步脚本,集合什么的
    xrr2016
        41
    xrr2016  
       246 天前
    在 v2 使用国产字样不是找喷吗
    oIMOo
        42
    oIMOo  
       246 天前
    @MegatronKing #39
    我详细描述一下我的环境,除了系统版本,我没有给应用配置任何证书等等(因为才尝试就闪退了),另外,应用不在系统应用文件夹,而是在用户应用文件夹 —— /Users/[username]/Applications
    本机没有翻墙,DNS 使用 AdGuard DNS, 但是不应该造成闪退
    Alexonx
        43
    Alexonx  
       246 天前 via Android
    小黄鸟的作者的产品 支持下
    leokun
        44
    leokun  
       246 天前
    看着界面很不错,不过有其他顺手的工具了,赞一个
    Zeyes
        45
    Zeyes  
       246 天前
    价格太贵,这种是工具,还搞包年,typora 都没这么飘。
    MrHyde
        46
    MrHyde  
       246 天前 via iPhone
    问个问题:flutter 现在开发桌面端 app ,效果咋样?体验咋样?
    AilF
        47
    AilF  
       246 天前
    这种的个人使用建议出买断
    lanten
        48
    lanten  
       246 天前
    好用是好用的,但有个致命问题:和 v2ray 打架了,两者都走的系统代理,有我无他,一个生效另一个就失效
    learningman
        49
    learningman  
       246 天前 via Android
    在全平台支持 HTTP1 、HTTP2 和 HTTP3(QUIC)协议
    HTTP3(QUIC)暂不支持
    呃呃
    zorui
        50
    zorui  
       246 天前
    @xrr2016 参考隔壁国产自主可控的 vscode ide /t/968064 。 好东西肯定认可, 为啥一定强调“国产”?
    maotao456
        51
    maotao456  
       246 天前
    我说一下问题吧,关闭软件后没有自动取消系统代理状态,然后上不了网。
    zzq825924
        52
    zzq825924  
       246 天前
    是不是有点便宜
    qb20150806
        53
    qb20150806  
       246 天前
    和代理冲突
    techmale
        54
    techmale  
       246 天前
    "We promise that users do not need to pay extra for the mobile apps, free to use as long as you purchase a license."

    如果是这样,价格卖低了 😆
    rj
        55
    rj  
       246 天前
    下载一个试试
    skiy
        56
    skiy  
       246 天前   ❤️ 1
    @MegatronKing

    默认缺少 gtk 依赖
    ```bash
    sudo apt-get install libdbusmenu-gtk3-4
    ```


    “是不是应该是 installer 的问题”???

    解包
    ```bash
    dpkg-deb -x reqable.deb reqable
    ```

    再用 tree 查看
    ```bash
    .
    └── usr
    └── share
    ├── applications
    │   └── reqable.desktop
    ├── pixmaps
    │   └── reqable.png
    └── reqable
    ├── data
    │   ├── flutter_assets
    │   │   ├── AssetManifest.bin
    │   │   ├── AssetManifest.json
    │   │   ├── AssetManifest.smcbin
    │   │   ├── assets
    │   │   │   ├── fonts
    │   │   │   │   ├── ReqableDesign.ttf
    │   │   │   │   └── RobotoMono-VariableFont_wght.ttf
    │   │   │   └── images
    │   │   │   ├── common
    │   │   │   │   ├── dark
    │   │   │   │   │   ├── ic_tray_active.png
    │   │   │   │   │   └── ic_tray_normal.png
    │   │   │   │   ├── ic_tray_active.ico
    │   │   │   │   ├── ic_tray_normal.ico
    │   │   │   │   ├── ic_unlock_feature.png
    │   │   │   │   ├── light
    │   │   │   │   │   ├── ic_tray_active.png
    │   │   │   │   │   └── ic_tray_normal.png
    │   │   │   │   ├── qrcode_ca_link.png
    │   │   │   │   └── qrcode_qq_group.jpg
    │   │   │   ├── en-US
    │   │   │   │   └── certificate
    │   │   │   │   ├── android_ca_install_state.png
    │   │   │   │   ├── android_wifi_proxy.png
    │   │   │   │   ├── chrome_certificate_setup1.png
    │   │   │   │   ├── chrome_certificate_setup2.png
    │   │   │   │   ├── firefox_certificate_setup1.png
    │   │   │   │   ├── firefox_certificate_setup2.png
    │   │   │   │   ├── ios_ca_install.png
    │   │   │   │   ├── ios_ca_install_state.png
    │   │   │   │   ├── ios_wifi_proxy.png
    │   │   │   │   ├── mac_certificate_setup1.png
    │   │   │   │   ├── mac_certificate_setup2.png
    │   │   │   │   ├── windows_certificate_setup1.png
    │   │   │   │   └── windows_certificate_setup2.png
    │   │   │   └── zh-CN
    │   │   │   └── certificate
    │   │   │   ├── android_ca_install_state.png
    │   │   │   ├── android_wifi_proxy.png
    │   │   │   ├── ios_ca_install.png
    │   │   │   ├── ios_ca_install_state.png
    │   │   │   ├── ios_wifi_proxy.png
    │   │   │   ├── mac_certificate_setup1.png
    │   │   │   ├── mac_certificate_setup2.png
    │   │   │   ├── windows_certificate_setup1.png
    │   │   │   └── windows_certificate_setup2.png
    │   │   ├── FontManifest.json
    │   │   ├── fonts
    │   │   │   └── MaterialIcons-Regular.otf
    │   │   ├── kernel_blob.bin
    │   │   ├── NOTICES.Z
    │   │   ├── packages
    │   │   │   └── reqable_framework
    │   │   │   └── assets
    │   │   │   └── fonts
    │   │   │   └── ReqableIconFont.ttf
    │   │   ├── shaders
    │   │   │   └── ink_sparkle.frag
    │   │   └── version.json
    │   └── icudtl.dat
    ├── lib
    │   ├── esbrotli-linux64.so
    │   ├── libapp.so
    │   ├── libayatana-appindicator3.so.1
    │   ├── libayatana-indicator3.so.7
    │   ├── libdesktop_drop_plugin.so
    │   ├── libdesktop_multi_window_plugin.so
    │   ├── libfile_selector_linux_plugin.so
    │   ├── libflutter_linux_gtk.so
    │   ├── libmenubar_plugin.so
    │   ├── libobjectbox_flutter_libs_plugin.so
    │   ├── libobjectbox.so
    │   ├── libplatform_device_id_linux_plugin.so
    │   ├── libreqable_cronet.so
    │   ├── libreqable_flugin_plugin.so
    │   ├── libreqable_http.so
    │   ├── libreqable_netbare.so
    │   ├── libtray_manager_plugin.so
    │   ├── liburl_launcher_linux_plugin.so
    │   └── libwindow_size_plugin.so
    └── reqable
    ```

    怎么看都知道源程序的二进制文件在 /usr/share/reqable 。而 google chrome 等其它应用都是在 /opt
    ```bash
    tree -L 2 /opt/google
    /opt/google
    └── chrome
    ├── chrome
    ├── chrome_100_percent.pak
    ├── chrome_200_percent.pak
    ├── chrome_crashpad_handler
    ├── chrome-management-service
    ...
    ```

    ```bash
    tree -L 1 -d /opt/
    /opt/
    ├── apps
    ├── balenaEtcher
    ├── bytedance
    ├── containerd
    ├── freedownloadmanager
    ├── google
    ├── kingsoft
    ├── microsoft
    ├── MindMaster-10
    ├── QQ
    └── vivaldi
    ```

    当然,我不了解相关规则。可能放在 /usr/share/ 下也符合规范。我只是从其它的软件角度看而已。
    wukaige
        57
    wukaige  
       246 天前
    好东西,支持一下。
    shen13176101
        58
    shen13176101  
       246 天前
    添加重写规则,可以实现去广告???
    johnnyNg
        59
    johnnyNg  
       246 天前
    公司安全软件报了恶意进程,安全那边找我了😅
    MegatronKing
        60
    MegatronKing  
    OP
       246 天前
    @johnnyNg 非常抱歉,我也不知道怎么回事。或者,你可以给安全同事安利下 Reqable ,说不定他们也有使用需求?
    2020beBetter
        61
    2020beBetter  
       246 天前
    官网打不开了
    kuanat
        62
    kuanat  
       246 天前 via Android
    做得挺好的啊。

    请问 http3/quic 抓包路线图计划吗?这个功能虽然和 http 1/2 列在一起,但完全没法复用已有的功能框架,而且实现这个功能需要程序外做很多工作。

    因为我自己前两个月就在写 quic mitm 的 poc ,还是非常麻烦的,而且现在 quic 各个实现之间 interop 还不是很理想。如果 op 这边能做个商业成品就最好了。
    987N
        63
    987N  
       246 天前   ❤️ 1
    有点眼熟,https://proxyman.io/ ,还是说都长的差不多,是不是我 PTSD 了
    iold
        64
    iold  
       246 天前
    个人订阅怎么还会比企业订阅定价高呢
    FightPig
        65
    FightPig  
       246 天前
    看着不错,晚点试下
    ly529
        66
    ly529  
       246 天前
    挺好的,建议添加个:弱网环境模拟
    lneoi
        67
    lneoi  
       246 天前
    试了下还不错.官网下不来, 我去 github 下的.
    图标第一眼看着很像迅雷 2333
    blackcrystal
        68
    blackcrystal  
       246 天前
    HttpCanary 付费版老用户路过。当初亲眼见证了 HttpCanary 从 2019 年 4 月群里只有十几人开始到热度暴涨,从软件可能被用于破解其它程序到国内版 HttpCanary 被限制,从最后 HttpCanary 官方群解散到软件下架停更与破解版泛滥。

    非常开心今天能在 v2 看到 Reqable 打赢复活赛。
    8675bc86
        69
    8675bc86  
       246 天前
    看到国产,点个赞,弯道超车。
    exiahan
        70
    exiahan  
       245 天前
    牛哇,老哥之前的那个 Canary 也很牛。
    oIMOo
        71
    oIMOo  
       245 天前
    @iold #64 零售和批发的关系?
    tairan2006
        72
    tairan2006  
       245 天前 via Android
    好顶赞
    skiy
        73
    skiy  
       245 天前
    刚有空试了下。Linux 平台下抓包功能正常。正常抓取 iOS APP 的接口(包括小程序接口)。

    非常棒。
    Y25tIGxpdmlk
        74
    Y25tIGxpdmlk  
       245 天前
    你猜怎么着,竟然出奇的好用,完成度很高!
    当前用的一直是 Charles ,我看到各种抓包工具都喜欢下载来用用看。今天试了下这个,一开始以为是个人开发者随便写的半成品,结果发现这么棒。。

    直接替换 Charles 了,以后就用这个了。希望越来越好!!
    Y25tIGxpdmlk
        75
    Y25tIGxpdmlk  
       245 天前
    提个建议,这排图标的提示气泡显示到上面去,不然那会被鼠标指针挡住,强迫症看着好难受啊
    evemoo
        76
    evemoo  
       245 天前
    HTTP Canary 支持 +1
    不过 reqable 免费的 api 集合太少了,只能建立两个有点离谱
    laibin6
        77
    laibin6  
       245 天前
    本想放弃 proxyman ,看了一下 pricing 还是继续用 proxyman
    kingjpa
        78
    kingjpa  
       245 天前
    点赞
    JohnSmith
        79
    JohnSmith  
       245 天前 via Android
    国产 ptsd
    f14g
        80
    f14g  
       245 天前 via Android
    很强。点赞
    MegatronKing
        81
    MegatronKing  
    OP
       245 天前
    @laibin6 这个我真的不是很能理解,proxyman 一台设备 69 刀,reqable window+mac+linux 各 1 台设备 79rmb ,后面还会提供移动端独立应用,也就是 5 台设备总共 79rmb ,不香吗?
    cokey
        82
    cokey  
       245 天前
    支持,难得有真国产做的良心软件!
    d7101120120
        83
    d7101120120  
       245 天前
    支持国产的优秀软件,现在手机上还安装着作者的 http canary ,直到现在我觉还是 android 端最好用的抓包工具。期待后续 reqable 的 android 版本。
    Sdyhgc
        84
    Sdyhgc  
       245 天前 via Android
    一定要和花瓶一样支持自定义根证书,最好能手动指定解析类型,花瓶未识别的 websocket 就不行
    silvernoo
        85
    silvernoo  
       245 天前
    一个人肝出来的吗
    lopssh
        86
    lopssh  
       245 天前 via Android
    支持,请问这个项目对 ja3/ja3s/jarm 指纹方面有没有做处理?比如能否正常抓 openai 那个 chatgpt 聊天页面上的 https 数据包?
    cquan
        87
    cquan  
       245 天前
    这头像不是小黄鸟吗
    lisxour
        88
    lisxour  
       245 天前
    像这些基础的东西都只给一两个的限制,吃相是不是太难看了?

    sunny1688
        89
    sunny1688  
       245 天前   ❤️ 1
    应用层抓包?
    MegatronKing
        90
    MegatronKing  
    OP
       245 天前 via Android
    @lopssh 这个没有具体测试过。
    MegatronKing
        91
    MegatronKing  
    OP
       245 天前 via Android   ❤️ 2
    @lisxour 您说得对,就是难看,纯爱发电才好看。或者学习下国外软件,比如 Charles ,不注册许可证不给用,或者 Fiddler Everywhere 每年不交个 120 刀软件也别想进去。
    wkong
        92
    wkong  
       245 天前
    @MegatronKing 很多人都想白嫖,白嫖就算了,还很理直气壮喷你让他白嫖的不爽😄
    sslyxhz
        93
    sslyxhz  
       245 天前 via Android
    看头像是 httpcanary 的开发者?
    simo
        94
    simo  
       245 天前
    看来是我用 flutter 太肤浅了
    vueli
        95
    vueli  
       245 天前
    强烈要求做一个安卓手机的版本,公司测试机安卓
    killadm
        96
    killadm  
       245 天前 via Android
    感谢,用过小黄鸟,很好用!
    weijancc
        97
    weijancc  
       245 天前
    看起来不错哟
    Biggoldfish
        98
    Biggoldfish  
       245 天前 via Android
    颜值挺不错

    但是国产 闭源 可以截获网络流量 MITM 我还是敬而远之吧
    llsquaer
        99
    llsquaer  
       245 天前
    这个好用。已经从 Fiddler 转这个了,最新版很不错,可以直接复制 crul ,可以直接生成代码了。比 Fiddler 方便多了。
    现在调试自动滚动到底部,还没修改啊。大佬啥时候加个开关啥的,可以自动滚动,自己滚动眼睛看花
    skiy
        100
    skiy  
       245 天前
    @llsquaer 你点按“ID” 倒序查看好些。
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2742 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 11:46 · PVG 19:46 · LAX 04:46 · JFK 07:46
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.