FPB - 数据包生成与协议分析工具


GPLv2
跨平台
Java

软件简介

Fine Packet
Builder(简称FPB)是开源免费数据包生成与协议分析工具,同时还提供了著名的PCAP数据包截取软件包的Java封装。FPB使用独创的协议语法表示语言(Protocol
Syntax
Notation)来定义协议的格式与编码和解码规则,可以在基本不编程(或很少编程,如checksum计算)的情况下定义自己的协议。协议语法表示语言是建立在TTCN-3
语言的基础上的,它继承了TTCN-3语言的协议定义相关部分的语法,并且根据协议分析功能的需要进行了扩展。另外通过FPB的通用Java
API可以对面向协议栈的数据包进行创建、编辑、编码、解码、完整性验证和链路层发送和接收等操作。

由于FPB具有,用协议语法表示语言描述的协议语法直观易懂;Java
API的功能强大且简洁易用;内置协议众多且使用实例丰富;等优点,所以可以将其广泛地应用于流量生成、协议分析、协议模拟、协议学习和协议测试等方面。

以下是已经实现(v2.0.beta2版)的功能列表:

1)通用CD(编码与解码)框架。使用协议语法表示语言来描述,并且具有各种自动化功能,其特点如下:

a)同时支持面向数据包(如ICMP)和面向流(如HTTP)两种类型的协议,并且可以使用统一的描述规则。

b)提供编码规则描述属性集,使得编码和解码器的绝大多数功能可以仅通过记述描述属性就能够实现。

d)字段的自动计算功能,通过描述属性定义的长度字段和对齐字段可以自动计算自己应有的值。

d)数据包内容打印功能,可以以树形结构的文本形式打印数据包的内容和各个字段值的描述。

2) 数据包内容完整性的验证。使用协议语法表示语言的类型限制条件规则(与TTCN-3语言的规则相同)来描述数据的完整性规则,可以通过Java
API根据该验证规则来自动验证数据包内数据的完整性。

3)PCAP软件包的封装。用Java封装了PCAP软件包,支持所有PCAP原有的功能。为方便用户的使用,对Pcap原有基于函数的API进行了整理和归纳,提供了简洁明了的基于Java接口的API。

4)已提供的协议CD实现:

Ethernet, ARP, ICMPv4, IPv4, ICMPv6, IPv6, UDP, TCP, HTTP

5)提供了多个应用例子,包括用ARP协议来取得MAC地址,用ICMP协议来实现Ping和Traceroute应用,以及TCP的连接开始和终了示例等。

以下是正在开发的功能:

1)符合TTCN-3语言规范的模版功能。

2)协议CD实现:SIP,PPPoE, L2TPv2, L2TPv3等

本工具希望提供一个灵活、使用简便而且功能强大的CD框架,从而可以快速开发各种类型的CD,并且用它实现尽可能多协议的CD供大家使用,也欢迎大家用它实现自己的协议并共享给别人使用。