PCAP文件的正则表达式搜索

时间:2019-03-18 10:37:45

标签: python regex python-3.x expression pcap

我们已获得一个PCAP文件,我的工作是查找:

主机PC的用户尝试访问某些域名以 .top 结尾的可疑网站。使用Python(在正则表达式的帮助下)找到易受感染的网站。

通过在记事本上打开PCAP文件并进行Ctrl + F搜索,我已经找到了正确的答案: http://p27dokhpz2n7nvgr.1jw2lx.top

但是,这显然不是分配的目的,因为我必须使用Python和正则表达式来返回该网站

到目前为止我尝试过的代码是:

import re

pcapfile = open('CyberSecurity2019.pcap', 'rb')

mypattern = re.compile(rb"\S+\.top\b")

x = mypattern.findall(pcapfile.read())

print("x = ", x)

但是这是返回的内容:

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']

而且持续了一段时间。

在将我设置在正确轨道上的任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

由于您要提取的所有链接均以import { interval } from 'rxjs'; ... public Respond() { this.dataService.WaitingForServiceRespond() .pipe(( debounceTime(2000), switchMap((r: any) => { if (!r.price) { return interval(10000).pipe(tap(() => this.Respond())) } else { this.dataService.user.payment = r; console.log('price returned', r); return of('') } }) )) .subscribe(e => { console.log(e) }) } http开头,因此可以使用

https

请参见regex demo。请注意,rb'https?://\S+?\.top\b' 字符串文字前缀定义了一个raw string literal(因此所有反斜杠都被视为文字反斜杠,而不是string escape sequences的一部分),此处需要r,因为 PCAP 文件是二进制文件,因此模式也应该是二进制字符串。

详细信息

  • b-https?://http://
  • https://-1个或多个非空白字符
  • \S+?-一个\.top子字符串(请注意,转义的点,未转义的点匹配Python .top中除换行符以外的任何字符)
  • re-单词边界(请注意,\b前缀允许使用单个反斜杠定义正则表达式转义,如果不使用r前缀,则需要将其写为r