Rythem是什么

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

下载地址及源码:

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

Rythem截图1

Rythem目前已实现以下功能:

  • http代理服务
  • https tunnel透传(https抓包需求似乎不是很大,暂不实现)
  • 规则替换
    匹配模式包括`wildcard`类型及全匹配两种
    以替换后内容区分有本地及远程两种。
    本地替换有三种:目录式,单个文件式,多文件合并成一文件
    远程替换暂时只支持一个文件对应一个远程路径
  • 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

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

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

发表评论