pcap 文件中的 grep 字符串

pcap 文件中的 grep 字符串

我正在尝试找出正确的命令语法。我有一个 pcap 文件,我想使用 grep,并且只使用 grep 来从文件中删除所有唯一的 ip 地址

因此假设文件名为 capture.pcap 并且位于我的主文件夹中,我应该写什么?

我假设正则表达式可以是'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' ,并且sortuniq必须包含在内,但似乎 pcap 对 grep 的响应不太好,例如,使用 grep file word 的正常语法不起作用,如果我运行:grep 239 ./capture.pcap我得到了重放Binary file ./capture/pcap matches

答案1

尝试添加-a--binary-file=text选项

grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap
或者
grep --binary-file=text -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' file.pcap


这似乎适用于我从 wiki.wireshark.org 下载的随机 pcap 文件,即

$ grep -E '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Binary file NTLM-wenchao.pcap matches

$ grep -aE '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+' NTLM-wenchao.pcap
Host: 192.168.0.55
Host: 192.168.0.55
Host: 192.168.0.55
Location: http://192.168.0.55/default.aspx
MicrosoftSharePointTeamServices: 12.0.0.6421
<body><h1>Object Moved</h1>This document may be found <a HREF="http://192.168.0."_?"_Ea@yÀ¨[À¨ÃPþµû%RÑ_Pü>ÕGET /default.aspx HTTP/1.1
Host: 192.168.0.55

ETC。

请注意(来自手册页的man grep)警告

If TYPE is text, grep processes a binary file as if  it
were  text;  this is equivalent to the -a option.  Warning: grep
--binary-files=text might output binary garbage, which can  have
nasty  side  effects  if  the  output  is  a terminal and if the
terminal driver interprets some of it as commands.


请注意,虽然您可以使用\d正则表达式(例如d在 .igit 中,只有 PCRE 模式下的 grep 支持它(即使用开关-P)。

答案2

grep适用于文本,.pcap 文件是二进制文件,这意味着仅使用 grep你不能做你想做的事。.pcap 文件格式仅使用 grep你只能在 .pcap 文件中找到那些位于数据包数据部分的 IP。(例如,捕获文件包含网页下载的数据包,其中网页是关于 IP 的)简而言之,仅使用 grep你不能这么做。

但为什么你只能使用 grep?这是一种家庭作业吗?(我回答了一个非常相似的问题3天前。

答案3

为什么不直接使用strings命令呢grep

例如:

你的 pcap 文件:abc.pcap

strings abc.pcap | grep "Your Search String Goes Here" 

相关内容