Fiddler对抓包报文修改的五种方法

289 阅读3分钟

五种常见的数据包修改方法:Fiddler与Sniff Master对比

Fiddler是一款十分流行好用的抓包工具,而Sniff Master作为后起之秀,在数据包修改方面也有其独特优势。通过这两款工具不仅可以查看数据包,还可以对数据包进行修改,进行各种测试模拟。本文将介绍五种常见的修改报文数据包的方法。

一、直接修改请求伪装客户端

在Fiddler中: 单击菜单 Rules -- User-Agents -- iPhone6

请求报文User-Agent信息已被修改

浏览器显示出来的页面变成了手机版的样式

在Sniff Master中: 可以直接在"伪装设置"中选择预设的客户端类型,或者自定义User-Agent字符串,操作更加直观简单。

二、下断点拦截并修改请求报文

Fiddler全局断点: 单击菜单栏中的 Rules -- Automatic Breakpoint -- Before Requests,会拦截全部请求报文

Fiddler特定网址断点: 左下角QuickExec 命令行中输入命令"bpu www.baidu com"后回车,就只会拦截百度页面。(要取消断点,在命令行输入"bpu"后回车即可)

在Sniff Master中: 断点功能更加智能化,可以通过可视化界面设置断点规则,支持正则表达式匹配,还能保存常用断点配置。

三、下断点拦截并修改响应报文

Fiddler全局断点: 单击菜单栏中的 Rules -> Automatic Breakpoint -> After Responses,会拦截全部响应报文

Fiddler特定网址断点: 左下角QuickExec 命令行中输入命令"bpafter www.baidu com"后回车,就只会拦截百度页面。

Sniff Master在这方面提供了更强大的响应修改功能,可以直接在拦截的响应中编辑二进制数据,支持多种编码格式转换。

四、自动替换网页资源

Fiddler使用AutoResonder功能: 将资源文件拖动到AutoResonder中 在Rule Editor中通过Find a file替换为一个本地的gif图

Sniff Master的资源替换功能更加完善:

  • 支持批量替换规则
  • 提供资源映射数据库
  • 可以实时预览替换效果
  • 支持正则表达式匹配替换

五、使用脚本实现自定义修改

Fiddler Script的本质是用JScript.NET编写的一个脚本文件CustomRules.js

示例:在OnBeforeRequest 函数中修改Cookie

if (oSession.uriContains("baidu.com"))
{
    //删除原有cookie
    oSession.oRequest.headers.Remove("Cookie");
    
    //新建cookie
    oSession.oRequest.headers.Add("Cookie","username=testname;testpassword=P@sswordl");
}

Sniff Master提供了更现代的脚本支持:

  • 支持多种脚本语言(JavaScript/Python/Lua)
  • 内置代码补全和调试功能
  • 提供丰富的API文档和示例
  • 支持脚本模块化管理

无论是使用Fiddler还是Sniff Master,掌握这些数据包修改技巧都能极大提升开发调试效率。Sniff Master作为新一代抓包工具,在易用性和功能丰富度上都有明显优势,特别适合需要进行复杂数据包分析和修改的高级用户。