FPB

数据包生成与协议分析工具
授权协议 GPLv2
开发语言 Java
所属分类 管理和监控、 DevOps/运维工具
软件类型 开源软件
地区 国产
投 递 者 谢财
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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供大家使用,也欢迎大家用它实现自己的协议并共享给别人使用。

  • 之前我在 github 上整理了来一份:free-programming-books-zh_CN(免费的计算机编程类中文书籍)。 截至目前为止,已经有 90 多人发了 300 多个 Pull Requests 和 200 多个 issues,从最初的几十本书到现在的近 500 本书。 欢迎大家提 PR: https://github.com/justjavac/... 语言无关类 操作系统 开源世

 相关资料
  • 物联网核心在人、机、云之间的信息互联,因此智能设备、云端、手机端会通过各种协议进行数据的交换,包括网络、蓝牙、USB、 ZigBee 等种种通信协议,实现万物互联的效果,因此在物联网安全分析中,对其中的通信协议的分析是关键的一环,本节将对常见的通信协议进行分析。

  • 1. TCP/IP协议栈与数据包封装 TCP/IP网络协议栈分为应用层(Application)、传输层(Transport)、网络层(Network)和链路层(Link)四层。如下图所示(该图出自[TCPIP])。 图 36.1. TCP/IP协议栈 两台计算机通过TCP/IP协议通讯的过程如下所示(该图出自[TCPIP])。 图 36.2. TCP/IP通讯过程 传输层及其以下的机制由内核提供

  • 要想团队协作使用Git,就需要用到Git协议。 3.1.1. Git支持的协议 首先来看看数据交换需要使用的协议。 Git提供了丰富的协议支持,包括:SSH、GIT、HTTP、HTTPS、FTP、FTPS、RSYNC及前面已经看到的本地协议等。各种不同协议的URL写法如表15-1所示。 表 15-1:Git支持的协议一览表 协议名称 语法格式 说明 SSH协议(1) ssh://[user@]ex

  • 现在,我们可以捕捉并过滤网络流量了,那就让我们学以致用,来做一个简单使用的程序吧。 在本讲中,我们将会利用上一讲的一些代码,来建立一个更实用的程序。 本程序的主要目标是展示如何解析所捕获的数据包的协议首部。这个程序可以称为UDPdump,打印一些网络上传输的UDP数据的信息。 我们选择分析和现实UDP协议而不是TCP等其它协议,是因为它比其它的协议更简单,作为一个入门程序范例,是很不错的选择。让我

  • 获取小程序概况趋势: $app->data_cube->summaryTrend('20170313', '20170313') 开始日期与结束日期的格式为 yyyymmdd。 API summaryTrend(string $from, string $to); 概况趋势 dailyVisitTrend(string $from, string $to); 访问日趋势 weeklyVisitT

  • 通过数据接口,开发者可以获取与公众平台官网统计模块类似但更灵活的数据,还可根据需要进行高级处理。 {info} 接口侧的公众号数据的数据库中仅存储了 2014年12月1日之后的数据,将查询不到在此之前的日期,即使有查到,也是不可信的脏数据; 请开发者在调用接口获取数据后,将数据保存在自身数据库中,即加快下次用户的访问速度,也降低了微信侧接口调用的不必要损耗。 额外注意,获取图文群发每日数据接口的结