问题背景:

整体的网络环境: A------>B|C--------->D其中bc是一个虚拟机的两张网卡进行转发,达到A、D两台机器相互通信的网络环境。现在为了测试中间虚拟机的一些功能,需要使用xcap进行构造/修改报文,并且在A端进行回放报文操作。


1.从wireshark进行抓包,获取到相关报文组:

比如你想让这条网络拥有http的流量,那么最好先在本地机中抓取一个完整的http交互,(syn,acksyn,ack,fin,finack),这样我们改的时候要改的包也都在,而且不需要更改过多信息。然后将报文组保存为.pcap的文件。

2.从xcap中修改报文:

首先我测试的时候xcap的版本是xcap1.0.3,打开xcap,右击报文组,创建报文组,然后右击新建出来的报文组,点击从.pcap文件中读取报文,选择想要读取的报文,选择想要修改的报文,点击确定。重新查看报文组就能看到刚才选择的报文,双击修改的报文,进入修改界面。
这里以修改http报文为例子:
首先尝试更改ip:
点击上方的ipv4,下方的source address进行更改源IP,Destination address进行更改目的IP,下方的两个自动更改都要打勾,checksum旁边的auto也要打勾
更改端口信息:
点击上方的TCP,更改端口信息,下方的checksum选中自动计算,在key下方的include all options 打勾。
更改http报文信息:
(貌似其他版本的有更简单的方式,可以直接使用字符串的方式更改报文,但是我这个版本不支持,只能将通过更改16进制矩阵更改报文信息)
对比左右两边,左边为16进制矩阵,右为字符串形式,跟你你想改的部分更改左边的内容,右边就是更改后的字符串的形式,想要插入可以选择想要插入的地方,然后点击insert,然后输入长度值,之后再进行更改。
这里要注意,不能把原来的格式给改了,否则就可能解析不到,(虽然人家网卡传报文肯定是没问题),比如http中每个字段之间要隔个\r\n,在请求行和请求体之间的空行之类的等等…
修改后点击保存,然后将报文组保存为文件,就更改成功了,
注意此时保存的时候是.xcap文件,wireshark不能识别,如果想用wireshark使用修改后的报文,或者想变成.pcap文件,可以先用xcap发包,然后wireshark抓取,再进行保存…

3.用xcap回放报文:

右击左侧栏中接口,点击刷新接口,可以看到当前主机的所有网卡,右击想要完成发送操作的网卡,点击启动接口,点击想要发送的报文组,可以看到报文组上面有可以选择接口的地方,选择刚才打开的接口,然后点击发送报文(像刷新图标的那个),就可以了。
下方的策略可以选择循环或者N次发送

3.实际遇到的坑点:

由于我1、3操作都是使用同一台电脑操作的,所以在A---->B|C---->D这样的环境中,在B|C电脑上抓取不到响应报文,只有请求报文。
这样的原因是因为A在面对响应报文的时候发现,目的MAC地址就是自己,于是就不再进行转发,就自己接收了。
要想避免这样的情况要么就把A的mac地址改写,要么就把报文组中所有包的目的MAC改写成其他地址(可以是D的地址)。
当然要是1、2操作是在一个环境中做的,3在一个环境中做的,就不会出现这样的问题,比如…造包的是开发A君,使用回放报文测试的是测试B君

使用xcap进行更改报文并进行回放以及回放报文只能看到请求流量看不到响应流量的问题相关推荐

  1. 报文如何截取时间_5种报文、8种邻居状态机详解OSPF工作原理

    上一章节介绍了OSPF相比RIP具有无环路.路由收敛速度快.可扩展性好的特点.知识卡片 | 链路状态路由协议OSPF凭什么会取代RIP? 我们知道路由协议的最终目的是为了计算最优路由加入路由表来指导I ...

  2. (chap3 Http报文内的http信息) HTTP报文格式

    HTTP报文是由多行数据构成的字符串文本(用CR+LF作换行符).大致可以分为报文首部和报文主体两块,通常并不一定要有报文主体. 1. 请求报文与响应报文的结构 2. 请求报文和响应报文的首部内由以下 ...

  3. mt950报文解析_系列之五 | MT759报文升级内容解析

    根据SWIFT组织2018至2019年对SWIFT报文格式的升级安排,2018年11月18日信用证相关报文的升级新增了MT744.MT759和MT708三种报文,其中MT759报文为标准化.格式化的自 ...

  4. 虚拟网络运维----基于wireshark报文分析快速过滤(tcp,icmp,http)报文时延

    文章目录 虚拟网络运维----基于wireshark报文分析快速过滤(tcp,icmp,http)报文时延 前言 tcp协议高时延报文定位 http协议高时延报文定位 icmp协议高时延报文 虚拟网络 ...

  5. OSPFB笔记-五个报文【超详细】[Hello报文,DD报文,LSR报文,LSU报文,LSAck报文]

    目录 Hello报文 DD报文[数据库描述报文] LSR报文 LSU报文 LSAck报文 通过前面已经了解到ospf的报文头部[链接:OSPF头部报文https://blog.csdn.net/wei ...

  6. HTTP报文(message)是什么?请求报文、响应报文、报文首部(header)、报文主体(body)

    文章目录 HTTP 报文格式 请求报文 响应报文 HTTP 报文格式 用于 HTTP 协议交互的信息被称为 HTTP 报文. 请求端(客户端)的 HTTP 报文叫做请求报文,响应端(服务器端)的叫做响 ...

  7. 麻将服务器回放消息定义,腾讯欢乐麻将怎么看回放?怎么看好友历史战绩记录...

    腾讯欢乐麻将是一款不错的麻将游戏,在这里, 可以玩血流成河,北方推倒胡等众多玩法,有的小伙伴打完一局后,想要看看历史回放那个,那么腾讯欢乐麻将怎么回放呢?腾讯欢乐麻将怎么历史战绩呢?下面小编就为大家带 ...

  8. android中高德地图轨迹回放,轨迹回放-点标记-示例中心-JS API 2.0 示例 | 高德地图API...

    轨迹回放 html, body, #container { height: 100%; width: 100%; } .input-card .btn{ margin-right: 1.2rem; w ...

  9. 一个报文的路由器之旅_报文的交换和寻址转发

    从"交换"谈起 数据是通过接口板接收和发送,通信线缆都要插接到接口板的接口上.那么,把某一 个接口来的数据包送到另一个接口发出去,这两个接口需要连起来.但实际上,数据 包可能从任意 ...

  10. 列举ospf的5种报文类型_OSPF的5种报文类型

    1 HELLO报文(hello packet) 周期性的发送给本路由器的邻居,使用的组播地址224.0.0.5. BR和BDR发送和接受报文使用的组播地址是224.0.0.6.HELLO PACKET ...

最新文章

  1. 让互联网拥抱移动VR,三星将发布新版VR浏览器
  2. 杂记-01.xcode模拟器管理
  3. C/C++ 踩过的坑和防御式编程
  4. LUA: lua基础.
  5. java 拷贝替换文件夹_比较两个不同文件夹中的两个文件,并将其替换为较新的文件夹...
  6. 基于线性筛的Pollard_rho 因数分解算法【例题】
  7. 计算机图形学——阴影
  8. 从文件夹里面多个文件里面查找指定内容
  9. PTA-基础编程题目集-函数题 ……
  10. 魅族android11,魅族17系列即将吃上安卓11,信息保护更稳了?
  11. 2022年全球及中国MICC电缆行业运行战略规划与未来投资策略分析报告
  12. Ethernet0没有有效的IP配置
  13. java 密码库_JCA-Java加密框架
  14. 第1131期AI100_机器学习日报(2017-10-23)
  15. c#web网页连接数据库产品出库入库数据更新
  16. 计算机丢失文件无法打开ae,ae工程文件打开提示素材丢失该怎么办?
  17. Shell脚本 单引号、双引号和反引号的区别
  18. Zookeeper原理详解
  19. Matlab模拟循环编码译码
  20. 简单的方法Android的数据恢复你的Andr​​oid手机

热门文章

  1. 从国产手机自强复盘小米十年
  2. Java学生成绩管理系统(一次学会java类及容器使用,内含java编程小tips)
  3. python 小说分析_Python文章相关性分析---金庸武侠小说分析
  4. 操作系统:进程同步与互斥之生产者-消费者问题(含报告和源码)
  5. itext7中文开发文档(二)
  6. 韦东山: 作为一个初学者,怎样学习嵌入式Linux?
  7. 基于python的学生信息管理系统毕业论文_学生信息管理系统毕业论文
  8. Kali下安装Wiznote
  9. ubuntu12.04 如何设置wiznote到快捷启动栏
  10. matlab 积分函数曲线,matlab数值积分函数