Rythem 是什么

Rythem 是一个与 Fiddler 同类的软件,和 Fiddler 一样具有 代理抓包/替换 功能,与 Fiddler 最大的不同是 Rythem 是跨平台&开源的。

下载地址及源码:

以下为 Rythem 运行的截图:(MacOS 与 windows 平台下略有不同)

Rythem截图1

Rythem 目前已实现以下功能:

  • http 代理服务
  • https tunnel 透传 (https 抓包需求似乎不是很大,暂不实现)
  • 规则替换
  • host 设置
  • 替换规则远程及本地导入。
  • 替换规则增删改。
  • 颜色标记已被替换的请求
  • 导入/导出 每条请求(兼容 fiddler *.saz 文件)
  • 批量导出 response body(可用于整站保存)
  • 过滤显示请求

如何使用

1)Windows 平台下,点击左上角 “开始抓包” 按钮(非 Windows 平台下手动将系统代理设为 127.0.0.1:8889)

2) 在 Rythem 右侧选中 “替换规则”tab  (见下图)

3) 在此 tab 下点击 “添加本地分组” 并填写分组名后点 OK(见上图)

4) 点击刚建立的分组下的 + 号,在弹出的窗口中填入相应信息,这里以 local File 类规则为例:

如下图,规则意为:遇到 http://test.com/ 的请求 时返回 replacement 里指定的文件的内容 (replacement 下的输入框可手动输入也可点其下的 -F 按钮选择。

5)打开浏览器访问 http://test.com/ 得到以下效果:(本例中 replacement 被设为一个.h 文件)

替换效果

替换规则简介:

目前 Rythem 实现了五种规则:

1. 单个请求对应单个文件替换

如上例

2. 目录级别替换

例: pattern 为: /myfolder/  replacement 为 /my/path/

则访问  http://every.host.name/every/path/to/myfolder/subpath/everyfile.html 会被转到 /my/path/subpath/everyfile.html

3.Host 替换

例  patern 为 w.qq.com  replacement 为 127.0.0.1 效果等同于在 hosts 文件里设置 w.qq.com 127.0.0.1 (前提是访问者通过本代理软件访问)

4. 远程内容替换(由于远程替换发现有严重 bug,暂时屏蔽)

例 pattern 为: http://myhost.com/cgi/no/ready   replacement 为 http://myhost2.com/cgi/already/ready

则访问 http://myhost.com/cgi/no/ready 时,内容返回为 http://myhost2.com/cgi/already/ready 所返回的内容

5. 单个请求对应多个文件组合替换

适用于多个 js 合并规则

转载请注明本文永久网址:http://www.alloyteam.com/?p=789
遇到问题请与 ip 反馈 iptton(at)gmail.com,或在此文后回复 🙂

--------------------------------------

2012.5.21 更新

增加源代码使用方法及代码阅读提示: https://github.com/AlloyTeam/Rythem/wiki
已实现拖动 @流年 所提及的拖动生成规则功能(已提交源代码,暂未打包新安装包)
今天有了第一次来自非团队内的 pull request~非常感谢 qhwa 的修正 ( https://github.com/qhwa)

2012.5.23 更新

使用 linguist 支持多语言
修复一个严重 bug(会导致某些请求不能正常执行)  (已更新安装包)
TODO: 增加版本更新功能

2012.5.31 更新

增加更新检查
增加单例运行检查 (只允许同时运行一个 Rythem)

2012.8.22 更新

MacOS 下增加设置代理功能
不需手动设置代理,仅在 MacOS 10.8 上测试通过

修改 Windows 下代理设置方式,解决部分 windows+ie 组合下设置代理失效问题

Windows 下启动时自动开启抓包
MacOS 下由于设置及取消都需输入密码,所以设成需手动点 “开始抓包” 按钮)

支持 HTHML5 audio 音频替换
旧版本的 Rythem 或 fiddler 替换 audio 标签播放的文件 只能播放一次,Rythem 在一开始就支持了 HTML5 的 manifest 返回 content-type,后面大家开发中遇到需修改 header 的问题也可和 ip 反馈 

支持目录级的淘宝 ComboUrl  【来自 xhowhy 的贡献】(由于本人疏忽,忘更新主线到分支,导致昨天所发布版本中未含有 ComboURL 替换功能,看下载量已有 5 个下载,这里说声抱歉~ 目前 windows 版已重新 build,mac 版稍后更新 已更新)

2012.08.28 更新
由于测试不全面,导致如果系统本身有代理情况下,如果在启动时执行抓包会出错。

2012.09.19 更新
MacOS 版增加对系统原代理支持(pac/http/https)
MacOS 版抓包只需要输入一次密码即可

2013.11.14 更新
MacOS 版增加远程监听能力(远程 ip 地址显示在状态栏) MacOS 10.9 不支持 Qt5 , 又要回滚到 Qt 4.8 了。。(Windows 版本呢? 等我重新搭好 windows 环境再编译一个吧..) windows 版已更新

2014.2.21 更新
增加请求根据 host 过滤能力,
过滤例子:
如需只显示 host 中含有 qq.com 和 alloyteam.com 的请求,过滤输入框填  qq.com|alloyteam.com

原创文章转载请注明:

转载自AlloyTeam:http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/

  1. 独到时间尽头 2020 年 12 月 2 日

    新手学 Qt,希望有一天也能像作者一样厉害,总有一天,可以把这个完善的。

  2. 淡看网络路 2017 年 10 月 16 日

    很好用的软件,用了好几年了,只是可惜的是随着现在 https 的大规模普及,此软件还不能抓取 https,遗憾! 望作者抽空再更新下,谢谢!

  3. t 2016 年 4 月 21 日

    os x 10.11 是否可用

    • t 2016 年 4 月 21 日

      这个项目是终止的状态吗?

    • iptton 2016 年 10 月 18 日

      10.11 可用呀

  4. 啵一个 2015 年 12 月 22 日

    现在的版本支持抓 https 包了么

    • TAT.iptton

      TAT.iptton 2015 年 12 月 24 日

      暂时没有支持 https 的计划

  5. 王道中强流 2015 年 11 月 22 日

    怎么抓手机的数据包?

    • TAT.iptton

      TAT.iptton 2015 年 11 月 30 日

      只能抓 http 包。需设置 wifi 代理

  6. hpking 2015 年 9 月 7 日

    中文乱码,解决一下吧

    • TAT.iptton

      TAT.iptton 2015 年 11 月 9 日

      什么情况下?是指 response 显示吗?

  7. TAT.iptton

    TAT.iptton 2015 年 8 月 14 日

    发一下你的规则文件?

  8. TAT.iptton

    TAT.iptton 2015 年 8 月 14 日

    惭愧,已经很久没更新了,近期会抽时间再整理一次。

  9. swing 2015 年 6 月 17 日

    很好使,如果能把 Rosin 功能集成进去就完美了!

  10. 翎风 2015 年 4 月 10 日

    单个请求对应多个文件组合替换

    这个功能用不了,文件已经成功对应到本地,但是页面没得到渲染。请教一下是不是我使用的不对。

  11. Fiddler 在 linux/OSx 下的替代品? | segment-解决方案 2014 年 9 月 3 日

    […] 以 Qt 为基础, 框架跨平台, 开源的 和 Fiddler 一样具有 代理抓包/替换 功能介绍: http://www.alloyteam.com/2012/05/web-… […]

发表评论到 用fiddler抓手机浏览器的Http请求 | 暗前端