我已经将这个官方网站例子中使用的PCAP包上传到了优快云上,可以从此处下载:
https://download.youkuaiyun.com/download/liyihao17/10829232
一、使用readFile函数打开包内消息
打开安装netzob的包,可以从netzob/Import/PACPImporter/PCAPImporter.py中看到readFile函数,通过这个函数,我们可以从PACP包中获取消息,下面是这个函数的具体说明:
这个函数能够用来模拟我们测试协议实现的PCAP文件中导出消息(在运行该代码前要先将官方提供的pcap包拷贝至相同目录下):
from netzob.all import *
#import of two PCAP files representing two sessions of the protocol
messages_session1 = PCAPImporter.readFile("target_src_v1_session1.pcap").values()
messages_session2 = PCAPImporter.readFile("target_src_v1_session2.pcap").values()
messages = messages_session1 + messages_session2
messages_session1从target_src_v1_ssession1.pcap中读取消息,messages_session2从target_src_v1_ssession2.pcap中读取消息,然后使用messages将两者加起来,形成一个消息
二、创建Symbol对象构建协议symbol
创建一个symbol,这个symbol代表共享相同语法和语义的所有消息,也就是说这个symbol就基本可以代表这个协议
symbol = Symbol(messages = messages)
这行代码的意思是创建一个Symbol对象,并将刚刚从PCAP文件中提取的参数传给它 ,接下来我们把这个symbol中的内容打印出来看一下里面是什么东东
print(symbol)
结果发现这个symbol里面是这个样子的:
emmmm,这么一看就知道这个symbol里大概就是存域和其值的 ,到这一步为止可以说已经将pcap包中的内容提取出来,并对其域做了一个简单的处理了