代码改变世界

开源跨平台的Web抓包分析工具 Rythem -转

2012-06-15 13:35  cczw  阅读(1121)  评论(0)    收藏  举报

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)