WireShark 自带工具 editcap 和 text2pcap 配合完成改包操作
一、拆包
首先声明这种方法比较复杂而且需要点技术水平,不建议菜鸟尝试(可以使用WireEdit编辑pcap包,不过要联网)其实在熟练这种方法后也可以很快的,但这种方法主要还是方便吧,不用下载其他什么软件。(除了WireShark)
不过菜鸟也不会点进这篇技术文章吧。
先说主要思想
editcap和text2pcap是WireShark自带的两款功能强大的命令行程序
editcap是wireshark的命令行工具可以实现切割包和具体报文
text2pcap可以根据你导出来的字符数据重新转化为数据报文
因此我们可以先对原始包切割,切出想要的报文帧
导出为数据字串
修改数据字串
再用text2pcap转回报文,这样就完成了修改工作。
接下来是实际操作过程,我将把我遇到的比较复杂的例子来讲解,其他情况以此类推:
例子是一个巨帧TCP报文,人工实现IP分片功能。
打开CMD控制台窗口
转到WireShark安装目录 cd C:\Program Files\Wireshark 找到editcap.exe和text2pcap.exe 如图
接下来是官方文档editcap.html和text2pcap.html,我只截有用到的部分。
首先切割文件,找到巨帧的那个报文序号,利用editcap来把pcap文件拆成三部分:巨帧报文之前的部分,巨帧报文一部分,巨帧之后部分。命令如下:
editcap -r C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\Header.pcapng 1-31
editcap -r C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\JuZhen.pcapng 32
editcap C:\Users\Administrator\Desktop\LargePcap.pcapng C:\Users\Administrator\Desktop\Tail.pcapng 1-32
这里的巨帧是第32条报文,长度为2974明显大于以太网帧的1500,所以你必须要处理pcap包,才能使这个包符合实际的传输过程;命令中 -r 参数是保留指定报文,不加的话是剔除指定报文。
这里默认是pcapng格式,如果要转格式加 -F(详细见上面的说明);
把这个包拆成两部分: 一个1514(MTU 可能不同)另一个1460。这里使用 -C 参数来剪报文内的数据。
editcap -C -1460:1460 C:\Users\Administrator\Desktop\JuZhen.pcapng C:\Users\Administrator\Desktop\result_1.pcapng
editcap -C 54:1460 C:\Users\Administrator\Desktop\JuZhen.pcapng C:\Users\Administrator\Desktop\result_2.pcapng
这个语句要注意的是 offset :length offset是偏移,length是裁剪长度;还有就是要知道命令是把指定的给去除掉 (PS:我在这绕了很久)。
二、改包
打开result_1.pcapng和result_2.pcapng文件选中要改的报文,复制 -> as Hex Dump ,然后新建一个txt文件右键粘贴。
我把result_1.pcapng 和 result_2.pcapng 复制到 result_1.txt、result_2.txt中
接下来就是重中之重了 -------- 修改报文中的数据
同时打开result.pcapng 和 result.txt,在WireShark中找到要修改的字节,对照着txt文件的相应地方改成你要的数值就行了(要注意不要改动他导出的文件格式)
我这里的这个例子是要改动IP层的Total Length、Identification 和 Header CheckSum
以及TCP层的Sequence Number 和 Checksum
在txt中改掉对应的16进制,保存就完成了改包。
三、合包
然后使用text2pcap来合包操作,两条语句分别进行 txt Hex 转 pcapng 网络包
text2pcap C:\Users\Administrator\Desktop\result_1.txt C:\Users\Administrator\Desktop\1.pcapng
text2pcap C:\Users\Administrator\Desktop\result_2.txt C:\Users\Administrator\Desktop\2.pcapng
生成1.pcapng 和 2.pcapng
接下来是调整时间 ,使用 editcap -t 命令,由于不能使用精确时间来设置报文,只能 +偏移 或 -偏移来调正时间:
editcap -t -xxxx 1.pcapng
editcap -t -xxxx 2.pcapng
先查看 Header.pcapng 最后一条报文准确时间 和 Tail.pcapng 第一条报文时间,在根据要调整的报文时间进行加减
这里我就不写例子了(注意要在 Header.pcapng 最后一条报文准确时间 和 Tail.pcapng 第一条报文时间范围内)
最后是合并包部分,顺序是 Header.pcapng <- 1.pcapng <- 2.pcapng <- Tail.pcapng
四、结束
放张结果图,第32和33条报文是裁剪后的结果。
其实这种办法也不是特别麻烦吧!!不是很麻烦。。。。吧,。麻烦。好吧其实搞到这里我也没什么耐心了,这种方法我也没找到什么优点,在最后我也只是想记录一下,我挣扎的过程、学习的过程,仅此而已。
WireShark 自带工具 editcap 和 text2pcap 配合完成改包操作的更多相关文章
- Wireshark命令行工具tshark
Wireshark命令行工具tshark 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部 ...
- Wireshark命令行工具tshark详解(含例子)-01
Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...
- 如何利用 Visual Studio 自带工具提高开发效率
Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 ...
- JDK自带工具keytool生成ssl证书
前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...
- 教你用Windows自带工具给优盘/移动硬盘添加密码
教你用Windows自带工具给优盘/移动硬盘添加密码 本文中优盘,移动硬盘和分区操作方式一样,为方便描述,下文将只说优盘 优盘成了很多人每天都会用到的工具,有时候自己优盘会存着一些不希望别人看到的文件 ...
- Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 【计算机视觉】如何使用opencv自带工具训练人脸检测分类器
前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练.本文就对此进行展开. 步骤 1.查找工具文件: 2.准备样本数据: 3.训练分类器: ...
- (转)用mysql自带工具mysqlslap对数据库进行压力测试
http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工 ...
- 利用JDK自带工具监控JVMCPU和内存指标
特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...
随机推荐
- RMQ(连续相同最大值)
http://poj.org/problem?id=3368 Frequent values Time Limit: 2000MS Memory Limit: 65536K Total Submi ...
- bzoj3270 博物馆(期望+高斯消元)
Time Limit: 30 Sec Memory Limit: 128 MB 有一天Petya和他的朋友Vasya在进行他们众多旅行中的一次旅行,他们决定去参观一座城堡博物馆.这座博物馆有着特别的 ...
- MS DOS 常用命令整理
最近在开发用到一些dos下的一些指令,还有bat文件,特别是bat的便捷性让我在生活和开发过程中好好使用. dos指令: java com.pdcss.util.JacobService > D ...
- Java解析Groovy和Shell的代码
一.使用场景 在整个系统中,通用型的代码基本没什么变化,需要变动的仅仅是业务相关的代码.那么我们就会把一些业务代码简单编码一下放在数据库中.通过数据库的配置,可以直接从数据库中查找出来编码处理一下,来 ...
- 2018-2-13-Win10-UWP-Intro-to-controls-and-events
title author date CreateTime categories Win10 UWP Intro to controls and events lindexi 2018-2-13 17: ...
- 微信小程序(4)--二维码窗口
微信小程序二维码窗口: <view class="btn" bindtap="powerDrawer" data-statu="open&quo ...
- 如何触发react input change事件
页面用react来进行开发的,想触发react组件里面input的change事件,用Jquery的trigger来触发没有效果,必须使用原生的事件来进行触发. var event = new Eve ...
- chrome插件研发手册
chrome插件研发手册 一:需求前景 对于研发的小伙伴来说,总会遇到这样的需求,想要通过代码操作已有网站的行为动作,如:自动填充表格内容(表单内容太多,想一键将表单内容填充):自动登录网站(网站登录 ...
- windows平台搭建Mongo数据库复制集(类似集群)(三)
在本篇里面,咱们重点总结一下复制集,以及分析一下它的工作原理 一.常见场景 应用程序和数据库之间的网络连接丢失 计划停机.断电.数据库服务硬盘故障等等 复制可以进行故障转移,复制能让你在副本间均衡读负 ...
- INSTR代替NOT LIKE
instr(title,'手册')>0 相当于 title like '%手册%' instr(title,'手册')=1 相当于 title like '手册%' instr(titl ...