TCPREWRITE(1) Programmer‘s Manual TCPREWRITE(1)
tcprewrite - 改写pcap文件中的报文
tcprewrite [-flag [value]]... [--opt-name [[=| ]value]]...
所有参数均为选项。
该手册简要介绍了tcprewrite的用法。 Tcprewrite是一个改写pcap文件(tcpdump、and ethereal)报文的工具。修改后的报文可以用 tcpreplay(1)重新发送回去。
tcprewrite 当前支持读如下的DLT(Data Link Types)类型:
DLT_C_HDLC aka Cisco HDLC
DLT_EN10MB aka Ethernet
DLT_LINUX_SLL aka Linux Cooked Socket
DLT_RAW aka RAW IP
DLT_NULL aka BSD Loopback
DLT_LOOP aka OpenBSD Loopback
DLT_IEEE802_11 aka 802.11a/b/g
DLT_IEEE802_11_RADIO aka 802.11a/b/g with Radiotap headers
Please see the --dlt option for supported DLT types for writing.
请通过 --dlt 选项支持写DLT类型。
区分客户端、服务器的报文编辑需要tcpprep(1)生成的cache文件支持。
For more details, please see the Tcpreplay Manual at: http://tcpreplay.synfin.net/trac/wiki/manual
更多详细信息,请访问 : https://tcpreplay.appneta.com/
-r string, --portmap=string
修改TCP/UDP端口号,该选项可重复出现多次。
指定端口修改规则 ,将匹配端口修改成指定端口,匹配的端口之间由逗号分割,冒号后边跟着要修改成的指定端口号。
示例:
--portmap=80:8000 --portmap=8080:80 # 80->8000 and 8080->80
--portmap=8000,8080,88888:80 # 3 different ports become 80
--portmap=8000-8999:80 # ports 8000 to 8999 become 80
-s number, --seed=number
通过给定的seed随机化 src/dst IPv4/v6 地址,该选项只能出现一次。该选项参数为整型。
伪随机化IPv4/v6地址,随机化的地址仍然保持客户端/服务器之间的关系。因为基于相同seed的随机关系是确定的,所以通过相同的seed创造相同的流量。
-N string, --pnat=string
改写 IPv4/v6 地址,该选项最多能重复出现2次,该选项不能跟 srcipmap 选项混合使用。
IPv4 示例:
--pnat=192.168.0.0/16:10.77.0.0/16,172.16.0.0/12:10.1.0.0/24
IPv6 示例:
--pnat=[2001:db8::/32]:[dead::/16],[2001:db8::/32]:[::ffff:0:0/96]
-S string, --srcipmap=string
改写 IPv4/v6 源 IP 地址,该选该项只能出现一次,该选项不能同 pnat 选项混合使用。
工作原理跟 --pnat 选项类似,但是只影响IPv4/v6 源IP地址。
-D string, --dstipmap=string
改写 IPv4/v6 目的地址,该选项只能出现一次, 该选项不能同 pnat 选项联合使用。
工作原理跟 --pnat 类型,但是只影响 IPv4/v6 的目的 IP 地址。
-e string, --endpoints=string
点对点修改IP地址,该选项只能出现一次。该选项必须跟 cachefile 选项联合使用。
IPv4 示例:
--endpoints=172.16.0.1:172.16.0.2
IPv6 示例:
--endpoints=[2001:db8::dead:beef]:[::ffff:0:0:ac:f:0:2]
-b, --skipbroadcast
跳过广播/组播地址改写。
默认情况下, --seed, --pnat and --endpoints 会修改 IPv4/v6 组播广播的 MAC 地址。设置该选项可以保持组播、广播 MAC 地址不变。
-C, --fixcsum
强制重新计算 IPv4/TCP/UDP 头部校验和,选项 --seed, --pnat, --endpoints,--fixlen 自动使能。
-m number, --mtu=number
修改默认的MTU长度(1500字节),该选项只能出现一次,该选项为 1 through MAXPACKET的整数。
修改默认的1500字节MTU长度能决定最大的补全长度(--fixlen=pad)或者截取(--mtu-trunc)
--mtu-trunc
Truncate packets larger then specified MTU. This option may appear up to 1 times.
截取报文到指定的MTU,该选项只能出现一次。
跟 --fixlen 类似,该选项丢弃数据包中长于MTU的部分。
-E, --efcs
丢弃位于报文尾部的 Ethernet checksums (FCS) 部分。
声明,该选项有些危险!我们并不检查FCS是否真正存在,而是盲目的删掉最后两个字节数据。因此,你必须在确保你的系统在读raw报文时候提供 FCS 时候再用该选项。
--ttl=string
修改IPv4/v6 TTL。
示例:
--ttl=10
--ttl=+7
--ttl=-64
--tos=number
Set the IPv4 TOS/DiffServ/ECN byte. This option may appear up to 1 times. This option takes
an integer number as its argument. The value of number is constrained to being:
in the range 0 through 255
修改 IPv4 TOS/DiffServ/ECN 位,该选项只能出现一次。该选项参数为 0-255 的整数。
--tclass=number
设置 IPv6 Traffic Class 位。该选项只能出现一次,该选项参数为 0-255的整数。
--flowlabel=number
设置IPv6 Flow Label,参数为 0 - 1048575 整数。
-F string, --fixlen=string
补充或者截断报文数据,使得跟头部长度匹配。该选该项只能出现一次。
当捕获报文时候,如果 snaplen 小于实际的报文长度,报文会被截断。该选项允许通过补全、修改报文长度的方式使得报文数据长度跟头部长度相匹配。
pad : 补全截断的报文
trunc :重写IPv4头部长度来匹配实际报文长度。
del : 删除报文
--skipl2broadcast
跳过修改广播、组播二层地址。
默认情况下,修改二层地址会修改广播、组播MAC地址,设置该选项会保持广播、组播MAC地址不变。
--dlt=string
修改的输出的 LDT 封装,该选项只能出现一次。
默认情况下不会修改DLT封装。改变输出报文的DLT类型可以选取下边几个值:
enet Ethernet aka DLT_EN10MB
hdlc Cisco HDLC aka DLT_C_HDLC
user User specified Layer 2 header and DLT type
--enet-dmac=string
修改以太网目的地址。该选该项只能出现一次。
第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
示例:
--enet-dmac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-smac=string
修改源mac地址。该选项只能出现一次。
第一个mac地址用于服务器到客户端,第二个mac地址用于客户端到服务器。
示例:
--enet-smac=00:12:13:14:15:16,00:22:33:44:55:66
--enet-vlan=string
修改以太网 802.1q VLAN tag,该选项只能出现一次。
add : 给以太网头添加802.1q VLAN 头部
del : 删除 vlan tags
--enet-vlan-tag=number
指定新的 vlan tag 值,该选项只能出现一次。该选型必须跟 enet-vlan 联合使用。该选项参数为 0-4095 整数。
--enet-vlan-cfi=number
指定 vlan tag 的 CFI 值,该选项只能出现一次,该选项必须跟 enet-vlan 联合使用。该选项参数为 0-1 的整型。
--enet-vlan-pri=number
指定 vlan tag 的优先级。该选项只能出现一次,该选项参数为 0-7 整型。
--hdlc-control=number
指定 HDLC control 值,该选项只能出现一次,该选项参数为整数。
Cisco HDLC 头部有 1 位为“控制”域,通常情况下该值为 0, 你可以给这个域制定 1 字节的数值。
--hdlc-address=number
指定 HDLC 地址,该选项只能出现一次,该选项参数为整数。
Cisco HDLC头部有 1 字节的地址,有两个有效数值:
0x0F Unicast
0xBF Broadcast
可以指定任意的单字节数值。
--user-dlt=number
设置输出的DLT类型。该选项只能出现一次,该选项参数为整数。
设置输出 pcap 文件的 DLT 值。
--user-dlink=string
设置用户定义的 Data-Link layer 数据,该选项最多出现 2 次。
该选项第一个参数会用户修改客户端、服务器,但是如果指定了第二个参数,第一个参数会被用于客户端。
示例:
--user-dlink=01,02,03,04,05,06,00,1A,2B,3C,4D,5E,6F,08,00
-d number, --dbug=number
参见 tcpreplay man手册翻译
-i string, --infile=string
指定要处理的 pcap 文件,改选项只能出现一次。
-o string, --outfile=string
输出 pcap 文件,该选项只能出现一次。
-c string, --cachefile=string
Split traffic via tcpprep cache file. This option may appear up to 1 times.
通过 tcpprep 的 cache 文件划分流量,该选项只能出现一次。
Use tcpprep cache file to split traffic based upon client/server relationships.
通过 tcpprep 的cache 文件区分客户端。
-v, --verbose
参见 tcpreplay man手册翻译
-A string, --decode=string
参见 tcpreplay man手册翻译
--fragroute=string
? ? ?
--fragdir=string
? ? ?
--skip-soft-errors
跳过不能修改的报文,该选项只能出现一次。
某些情况下,报文不能被解码获取不能被修改,正常情况下报文会被原封不动的写到输出文件中,所以tcpprep file 仍然可用。
但是如果你愿意,可以丢球该类报文。
一个例子是没有数据的 802.11 管理报文。
-V, --version
参见 tcpreplay man手册翻译
-h, --less-help
参见 tcpreplay man手册翻译
-H, --help
参见 tcpreplay man手册翻译
-!, --more-help
参见 tcpreplay man手册翻译
--save-opts[=rcfile]
参见 tcpreplay man手册翻译
--load-opts=rcfile, --no-load-opts
参见 tcpreplay man手册翻译
Any option that is not marked as not presettable may be preset by loading values from configuration
("RC" or ".INI") file(s). The homerc file is "$$/", unless that is a directory. In that case, the
file ".tcprewriterc" is searched for within that directory.
tcpdump(1), tcpprep(1), tcpreplay(1)
Copyright 2000-2010 Aaron Turner
For support please use the tcpreplay-users@lists.sourceforge.net mailing list.
The latest version of this software is always available from: http://tcpreplay.synfin.net/
Released under the Free BSD License.
This manual page was AutoGen-erated from the tcprewrite option definitions.
(tcprewrite ) 2010-04-04 TCPREWRITE(1)
原文:https://www.cnblogs.com/rivsidn/p/10964940.html