五种常见的数据包修改方法: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作为新一代抓包工具,在易用性和功能丰富度上都有明显优势,特别适合需要进行复杂数据包分析和修改的高级用户。