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. qin 2012 年 6 月 6 日

    mac 10.5.8 貌似不行?

    • TAT.iptton

      iptton 2012 年 6 月 6 日

      sorry,确实是这样(下载链接后有提示,可能不够明显.)。我机器上的mac版本是10.7.4 似乎qt是存在这问题,需要在相应的版本上编译一下才行。暂时找不到其它mac版本的机器。

  2. moxuanyuan 2012 年 6 月 6 日

    Windows绿色版: http://alloyteam.github.com/download/rythem0531.7z

    无法下载~~~~

  3. 用fiddler抓手机浏览器的Http请求 | 暗前端 2012 年 5 月 30 日

    […] 最近腾讯的同学也写了一个新的,跨平台,但是还很弱,叫做rythem 官网 http://www.alloyteam.com/2012/05/web-front-end-tool-rythem-1/ 此条目是由 walterzhang 发表在 移动Web、自动化和工具 […]

  4. seek 2012 年 5 月 30 日

    ubuntu下的版本快发吧,亲~

    • TAT.iptton

      iptton 2012 年 5 月 31 日

      没试过ubuntu下打包,需要些时间..

      • tocky 2012 年 6 月 9 日

        ubuntu 12.04下可以编译成功,不过会异常退出。

  5. 81% 2012 年 5 月 24 日

    火速留名,再体验

  6. 小秦 2012 年 5 月 24 日

    Windows 7下启动之后,再关闭,不会还原IE的代理设置.
    启动的时候会设置IE的代理为 127.0.0.1:8889,但关闭的时候,不会还原,原来的设置.

    • TAT.iptton

      iptton 2012 年 5 月 24 日

      有没同时启动fiddler?我这里也是win7系统,没出现这问题。

      可以看看进程 里是否同时存在两个Rythem.exe 如果是的话就是上一个rythem没有正常退出导致。

      后续会完善crash后的相关操作〜

  7. @si 2012 年 5 月 24 日

    不错,现在版本还是不如fiddler好用,不过顶下。
    期待后续版本

    • TAT.iptton

      iptton 2012 年 5 月 24 日

      🙂 谢谢支持〜
      个人觉得目前最大的优势应该是mac下只有一个收费的同类软件(免费的暂时只发现有抓包,没有替换功能的)

      另外不知你有没用过fiddler插件willow,推荐使用 😀 , 有合并文件替换功能

  8. duoGg 2012 年 5 月 24 日

    mac安装提示“无可装载的文件系统”,求解

    • TAT.iptton

      iptton 2012 年 5 月 24 日

      可能和mac版本有关?我在10.7.4上编译的测试通过的,你的mac版本是?

    • TAT.iptton

      iptton 2012 年 5 月 24 日

      sorry,确实是包损坏了,稍后更新

      • duoGg 2012 年 5 月 24 日

        版本10.7.4。谢谢哈,好了Reply下,重新下载安装。谢谢!

        • TAT.iptton

          iptton 2012 年 5 月 24 日

          已更新〜

  9. 二军 2012 年 5 月 24 日

    火前先留名。。。

  10. 唠叨下 2012 年 5 月 22 日

    为咩界面里又是中文又是英文的?看的我好忧伤~,你听到用钥匙划过玻璃发出的声音的感觉就是,敢不敢来个全中文界面?

    • TAT.iptton

      iptton 2012 年 5 月 22 日

      因为开发过程中切换输入法麻烦,所以就用了英文。发布前部分换成了中文,后续会全换回来的了~

      • TAT.Kinvix

        TAT.Kinvix 2012 年 5 月 22 日

        p爷的开发速度敏捷到了连切换输入法的时间都要省掉的地步了,nb啊!!!

        • TAT.iptton

          iptton 2012 年 5 月 23 日

          mac下的中文输入法不好用..其实是想用Qt的translate多语言支持特性以英文为基础做翻译的

  11. dexbol 2012 年 5 月 21 日

    多文件合一的替换规则比较吸引人,不错。fiddler就没这个

    • TAT.iptton

      iptton 2012 年 5 月 22 日

      稍后再详细介绍 目录替换 和 多文件替换的使用方法~

  12. Kail 2012 年 5 月 21 日

    good job! thx

  13. 颂赞 2012 年 5 月 21 日

    一看就知道是前端工程师团队开发的

  14. 颂赞 2012 年 5 月 21 日

    牛逼

  15. mg12 2012 年 5 月 21 日

    支持。有Linux命令行版本就好了。

    • TAT.iptton

      iptton 2012 年 5 月 21 日

      这个可以有~ 😀

  16. linus脱袜子 2012 年 5 月 19 日

    没有ubuntu版吗?

    • TAT.iptton

      iptton 2012 年 5 月 21 日

      ubuntu应该和mac下一样,需手动设置代理就可以用了。由于这里没ubuntu环境,所以没打包。等代码更稳定些再考虑加上~

    • qhwa 2012 年 5 月 21 日

      我在Ubuntu下编译了一下,已经成功。不过很容易发生段错误然后崩溃。

      sudo apt-get install qt4-dev-tools qt4-qmake
      qmake -project
      qmake

      然后修改Rythem.pro:

      a) 添加 QT += core gui network script webkit
      (这一行本来是有的,不知道为什么qmake之后没有了)

      b) 删除 “proxy/rywinhttp.h \” 这一行
      否则会报错,找不到依赖的文件。这是windows系统才有的文件。

      修改 mainwindow.cpp:
      #include
      改为:
      #include
      大小写错了,Linux会编译不通过。之前对Qt一点都没接触过,所以在这步我卡了很久,才发现原来是写错了。

      最后一步: make

      结果会在当前目录生成一个可执行文件,完成!

      • qhwa 2012 年 5 月 21 日

        上面有些文字没有出来,评论里面可以直接用html代码的?O_O

        提交了一个 pull request

        • TAT.iptton

          iptton 2012 年 5 月 22 日

          html代码需要用<code></code>括起来

        • TAT.iptton

          iptton 2012 年 5 月 22 日

          没看到pull request哦~

      • TAT.iptton

        iptton 2012 年 5 月 22 日

        .pro文件里只考虑了mac和windows两种系统~ proxy/rywinhttp.h这个确实只为windows加的。可以去掉proxy/rywinhttp,再加上 win32:HEADERS += proxy/rywinhttp.h
        win32:SOURCES += proxy/rywinhttp.cpp

        “容易发生段错误然后崩溃”,这个我再装个ubuntu看看~

      • TAT.iptton

        iptton 2012 年 5 月 23 日

        段错误的问题会不会是Qt版本导致?我在ubuntu下用Qt4.8编译运行了,没有发现这问题。

  17. 流年 2012 年 5 月 17 日

    能不能像 fiddler 那样直接拖过来创建规则而不需要手动填写规则,然后选择本地文件来映射?

    • TAT.iptton

      iptton 2012 年 5 月 17 日

      暂时还没这功能,这个确实比较常用,先记下,优先实现~

  18. TAT.iptton

    iptton 2012 年 5 月 17 日

    mac安装包: http://alloyteam.github.com/download/rythem0517.dmg

  19. TAT.iptton

    iptton 2012 年 5 月 17 日

    下载地址: http://alloyteam.github.com/download/rythem0517.7z

  20. bigCat 2012 年 5 月 17 日

    有正则替换没亲?

    • TAT.iptton

      iptton 2012 年 5 月 17 日

      亲~
      和fiddler一样有wildcard类表达式,没正则的。替换规则加上regex:即可。
      如: regex:http://*.qq.com/

      在我使用过程中,目录替换 是比较常用的。表达式目前只能用于pattern,replacement还没处理~

发表评论