PCAP 文件的正则表达式搜索
Regular Expression search of a PCAP file
我们得到了一个 PCAP 文件,我的工作是找到:
主机用户试图访问域名以.top结尾的可疑网站。使用Python(在正则表达式的帮助下)找到易受影响的网站。
通过在记事本上打开 PCAP 文件并进行 Ctrl + F 搜索,我已经找到正确答案:http://p27dokhpz2n7nvgr.1jw2lx.top
但这显然不是作业的目的,因为我必须使用 Python 和正则表达式来 return 该网站
目前我试过的代码是:
import re
pcapfile = open('CyberSecurity2019.pcap', 'rb')
mypattern = re.compile(rb"\S+\.top\b")
x = mypattern.findall(pcapfile.read())
print("x = ", x)
然而这就是它 returns:
x = [b"c('_SS','R','20',0,'/');f=_w.top", b'g_triggerElems!==e&&(g_triggerElems[i].isHotSpotDisabled=!1);v=i+1,r=s[i],a=_ge("sc_hst"+v),a.style.left=r.locx+"%",a.style.top', b't=u.getBoundingClientRect(),o=t.width?Math.abs(t.right-t.left):t.width,a=s(u,"paddingLeft");o=o-(a?parseInt(a):0);v=t.height?Math.abs(t.bottom-t.top', b'n=document.getElementById(keyMap.Notification),t;n&&(n.parentNode.removeChild(n),t=document.getElementById("id_h"),t&&(t.style.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top']
这种情况持续了一段时间。
如能帮助我走上正轨,我们将不胜感激。
谢谢
由于您要提取的所有链接都以 http
或 https
开头,您可以使用
rb'https?://\S+?\.top\b'
参见 regex demo. Note that r
string literal prefix defines a raw string literal (so as all backslashes were treated as literal backslashes and not as part of string escape sequences) 并且此处需要 b
因为 PCAP 文件是二进制文件,因此模式也应该是二进制字符串。
详情
https?://
- http://
或 https://
\S+?
- 1 个或多个非空白字符
\.top
- .top
子字符串(注意转义点,未转义点匹配 Python re
中换行符以外的任何字符)
\b
- 单词边界(注意 r
前缀允许使用单个反斜杠来定义正则表达式转义,如果不使用 r
前缀,你会需要写成\b
)
我们得到了一个 PCAP 文件,我的工作是找到:
主机用户试图访问域名以.top结尾的可疑网站。使用Python(在正则表达式的帮助下)找到易受影响的网站。
通过在记事本上打开 PCAP 文件并进行 Ctrl + F 搜索,我已经找到正确答案:http://p27dokhpz2n7nvgr.1jw2lx.top
但这显然不是作业的目的,因为我必须使用 Python 和正则表达式来 return 该网站
目前我试过的代码是:
import re
pcapfile = open('CyberSecurity2019.pcap', 'rb')
mypattern = re.compile(rb"\S+\.top\b")
x = mypattern.findall(pcapfile.read())
print("x = ", x)
然而这就是它 returns:
x = [b"c('_SS','R','20',0,'/');f=_w.top", b'g_triggerElems!==e&&(g_triggerElems[i].isHotSpotDisabled=!1);v=i+1,r=s[i],a=_ge("sc_hst"+v),a.style.left=r.locx+"%",a.style.top', b't=u.getBoundingClientRect(),o=t.width?Math.abs(t.right-t.left):t.width,a=s(u,"paddingLeft");o=o-(a?parseInt(a):0);v=t.height?Math.abs(t.bottom-t.top', b'n=document.getElementById(keyMap.Notification),t;n&&(n.parentNode.removeChild(n),t=document.getElementById("id_h"),t&&(t.style.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top', b'http://p27dokhpz2n7nvgr.1jw2lx.top', b'p27dokhpz2n7nvgr.1jw2lx.top']
这种情况持续了一段时间。
如能帮助我走上正轨,我们将不胜感激。
谢谢
由于您要提取的所有链接都以 http
或 https
开头,您可以使用
rb'https?://\S+?\.top\b'
参见 regex demo. Note that r
string literal prefix defines a raw string literal (so as all backslashes were treated as literal backslashes and not as part of string escape sequences) 并且此处需要 b
因为 PCAP 文件是二进制文件,因此模式也应该是二进制字符串。
详情
https?://
-http://
或https://
\S+?
- 1 个或多个非空白字符\.top
-.top
子字符串(注意转义点,未转义点匹配 Pythonre
中换行符以外的任何字符)\b
- 单词边界(注意r
前缀允许使用单个反斜杠来定义正则表达式转义,如果不使用r
前缀,你会需要写成\b
)