[Wireshark] 11.1.保存捕获的文件

1,024 阅读2分钟

本节将讲解Dumper模块中包含的的函数与类, 它们主要被用来将Wireshark捕获的文件保存至本地磁盘;

Dumper代表了Wireshark内置的文件格式化写入器(详见wtap_name_to_file_type_subtype函数);

(init.lua中的wtap_filetypes表已被废弃,只应在必须通过Wireshark 3.4.3或更早的3本上运行代码时使用;)

如果想创建Lua脚本自己的文件格式化写入器,请参考“自定义文件格式读写器(Custom file format reading/writing)”;

11.1.1.Dumper

11.1.1.1.Dumper.new(filename,[filetype],[encap])

创建一个用来写入数据包的文件,不过使用 dumper:new_for_current() 或许是一种更好的选择;

  • 参数

    • filename

      要创建的捕获文件的名称;

    • filetype(可选)

      要创建的文件的类型——是一个由 wtap_name_to_file_type 返回的数字;

      (init.lua中的wtap_filetypes表已被废弃,只应在必须通过Wireshark 3.4.3或更早的3本上运行代码时使用;)

    • encap(可选)

      在要创建的捕获文件中希望使用的封装——是一个由init.lua表中的wtap_encaps表返回的数字;

  • 返回值

    • 一个新的Dumper对象;

11.1.1.2.dumper:close()

关闭一个dumper实例;

  • 可能出现的错误

    • Cannot operate on a closed dumper

11.1.1.3.dumper:flush()

将dumper实例中所有还未保存的数据保存至磁盘;

11.1.1.4.dumper:dump(timestamp,preudoheader,bytearray)

保存一个任意类型的数据包,不过使用 Dumper:dump_current() 能适用更多情况;

  • 参数

    • timestamp

      标识该数据包绝对时间的时间戳;

    • presudoheader

      希望使用的PresudoHeader

    • bytearray

      需要保存的数据;

11.1.1.5.dumper:new_for_current([filetype])

使用与当前数据包相同的封装方式创建一个捕获文件;

  • 参数

    • filetype(可选)

      希望保存的文件格式,默认为pcap;

  • 返回值

    • 一个新的Dumper对象;
  • 可能出现的错误

    • Cannot be used outside a tap or a dissector

11.1.1.6.dumper:dump_current()

原封不动地保存当前dumper实例中的数据包;

  • 可能出现的错误

    • Cannot be used outside a tap or a dissector

11.1.2.PreudoHeader

一个伪头文件,用于保存捕获的帧;

11.1.2.1.PseudoHeader,none()

创建一个”空“的伪头文件(Creates a "no" pseudoheader.);

  • 返回值

    • 一个空伪头文件;

11.1.2.2.PseudoHeader.eth([fcslen])

创建一个以太网的伪头文件;

  • 参数

    • fcslen(可选)

      fcs(协议数据里的,以太网的一种校验码,表示以太网端口是否正常)的长度;

  • 返回值

    • 一个以太网伪头文件;

11.1.2.3.PseudoHeader.atm([aal], [vpi], [vci], [channel], [cells], [aal5u2u], [aal5len])

创建一个ATM 伪头文件(Creates an ATM pseudoheader.);

  • 参数

    • aal(可选)

      AAL number;

    • vpi(可选)

      VPI;

    • vci(可选)

      VCP;

    • channel(可选)

      Channel;

    • cells(可选)

      Number of cells in the PDU;

    • aal5u2u (可选)

      AAL5 User to User indicator;

    • aal5len (可选)

      AAL5 Len;

  • 返回值

    • 一个ATM伪头文件;

11.1.2.4.PseudoHeader.mtp2([sent], [annexa], [linknum])

创建一个MTP2伪头文件(Creates an MTP2 PseudoHeader.);

  • 参数

    • sent (可选)

      如果该数据包是用来发送的则为Ture,接收的则为False;

    • annexa (可选)

      如果使用了附件A,则为True;

    • linknum (可选)

      Link Number;

  • 返回值

    • 一个MTP2伪头文件;