一、拆包

  首先声明这种方法比较复杂而且需要点技术水平,不建议菜鸟尝试(可以使用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 配合完成改包操作的更多相关文章

  1. Wireshark命令行工具tshark

    Wireshark命令行工具tshark 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把Data部 ...

  2. Wireshark命令行工具tshark详解(含例子)-01

    Wireshark命令行工具tshark使用小记 1.目的 写这篇博客的目的主要是为了方便查阅,使用wireshark可以分析数据包,可以通过编辑过滤表达式来达到对数据的分析:但我的需求是,怎么样把D ...

  3. 如何利用 Visual Studio 自带工具提高开发效率

    Visual Stuido 是一款强大的Windows 平台集成开发工具,你是否好好地利用了它呢? 显示行号 有些时候(比如错误定位)的时候,显示行号将有利于我们进行快速定位. 如何显示 1. 工具 ...

  4. JDK自带工具keytool生成ssl证书

    前言: 因为公司项目客户要求使用HTTPS的方式来保证数据的安全,所以木有办法研究了下怎么生成ssl证书来使用https以保证数据安全. 百度了不少资料,看到JAVA的JDK自带生成SSL证书的工具: ...

  5. 教你用Windows自带工具给优盘/移动硬盘添加密码

    教你用Windows自带工具给优盘/移动硬盘添加密码 本文中优盘,移动硬盘和分区操作方式一样,为方便描述,下文将只说优盘 优盘成了很多人每天都会用到的工具,有时候自己优盘会存着一些不希望别人看到的文件 ...

  6. Expo大作战(二十七)--expo sdk api之Util(expo自带工具类),tackSnapshotAsync,Svg,SQLite

    简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...

  7. 【计算机视觉】如何使用opencv自带工具训练人脸检测分类器

    前言 使用opencv自带的分类器效果并不是很好,由此想要训练自己的分类器,正好opencv有自带的工具进行训练.本文就对此进行展开. 步骤 1.查找工具文件: 2.准备样本数据: 3.训练分类器: ...

  8. (转)用mysql自带工具mysqlslap对数据库进行压力测试

    http://aolens.blog.51cto.com/7021142/1901557-------用mysql自带工具mysqlslap对数据库进行压力测试 mysqlslap是mysql自带的工 ...

  9. 利用JDK自带工具监控JVMCPU和内存指标

    特别提示:本人博客部分有参考网络其他博客,但均是本人亲手编写过并验证通过.如发现博客有错误,请及时提出以免误导其他人,谢谢!欢迎转载,但记得标明文章出处:http://www.cnblogs.com/ ...

随机推荐

  1. luoguP3369[模板]普通平衡树(Treap/SBT) 题解

    链接一下题目:luoguP3369[模板]普通平衡树(Treap/SBT) 平衡树解析 #include<iostream> #include<cstdlib> #includ ...

  2. C# 字符串的拆分

    string str = "ABCD"; char[] strCharArr = str.ToCharArray(); //结果 //strCharArr[0]='A', //st ...

  3. Mac下安装nodejs,然后安装Vue-devtools工具

    一.安装nodejs 1.这一步简单,只要上官网下载下来,直接按照提示安装就可以,mac版本的安装方法很简单. 下载nodejs的官方网址是:  nodejs.org    ,浏览器输入就可以跳转到了 ...

  4. psfaddtable - 添加一个Unicode字符表到控制台字体中

    总览 psfaddtable 字体文件 表文件 [输出文件] 描述 Psfaddtable 命令融合了 字体文件 提供的 .psf 格式的控制台字体和 表文件 提供的Unicode字符表, 生成一个带 ...

  5. 基于6U VPX的 SRIO 接口, 和PCIe 接口的msata 固态存储卡

    基于6U VPX 的mSATA高性能数据存储板     一.板卡概述 该产品系我司自主研发.基于标准6U VPX架构. 二.产品特性       最大存储容量8TB        读写方式RAID0 ...

  6. usb server新产品(旧老板设备)-给自己一个学习硬件的动力

  7. CSAW CTF Qualification Round 2018 - shell->code

    原题 Linked lists are great! They let you chain pieces of data together. nc pwn.chal.csaw.io 9005 链接:h ...

  8. vue之templete模板

    1.templete里要用data里的数据的话,不要加this. 2.按理说Js是写在<script></script>标签体内的.但是Vue的templete模板中对所有的数 ...

  9. leetcode之删除数组中的重复值(26题)

    给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度. 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成. 示例 1 ...

  10. Did you mean to run dotnet SDK commands

    把所有的net core的sdk,runtime,hosting通通卸载重新安装了2.1.1版本,发现再运行dotnet命令就是下面信息: C:\Users\Administrator>dotn ...