使用Scapy读取20gb的文件


  1. 我有一个Pcap文件,它是20GB大小。我想用Scapy分析一下。每当我想使用Scapy阅读时,我的笔记本电脑就会挂起. 无论如何,读取这个文件块(几mb一次),然后保存在小的pcaps文件。请注意,我只有一台机器。不要用大数据系统来解决这个问题)
  2. 如何获取会话数据从这些pcap文件使用python Scapy。有多个标志、ip和端口。我如何从每个会话中获取数据并存储在单独的pcap文件中?

谢谢。

如果您已经安装了Wireshark(从Windows和macOS的主Wireshark站点下载,从Linux, *BSD和其他未命名为"macOS"的UN* x的软件包中安装),它附带一个名为editcap的程序,该程序可以将捕获文件拆分为多个较小的捕获文件。

请注意,默认情况下,它写一个pcapng文件,而不是pcap文件,所以如果Scapy使用自己的代码来读取文件,而不是使用libpcap (libpcap的新版本可以读取一些pcapng文件),您可能必须指定-F pcap作为editcap的标志来让它写pcap文件。

(还请注意,pcap文件是而不是文本文件,因此您不能逐行读取它们"-没有"线"这种东西在pcap文件中。它们读起来并不简单,所以如果可能的话,最好使用editcap,而不是编写自己的程序来读取pcap文件。

如果您要编写自己的程序来读取pcap文件,那么您最好使用libpcap来读取它,而不是尝试自己解析pcap文件格式。如果用Python编写,请参见pcapy。)

我可以提供一些一般性的建议。

这个网站描述了PCAP文件的格式。根据该网站,格式如下:

Global Header | Header1 | Data1 | Header2 | Data2 | ... | HeaderN | DataN

他的页面解释了如何读取全局标头,以及使用open和seek函数,您可以从文件中读取N字节,可以从头开始读取,也可以从某个点继续读取。然后,您可以将这个20GB的文件分成若干个较小的文件,大小取决于您的可用内存。

最新更新