Skip to content

self‐define feature file

ttcoder edited this page Aug 8, 2024 · 1 revision

特征库文件

特征库文件用于存储所有APP的特征码,为非加密的文本文件,一般用.cfg后缀表示,可以通过文本文档编辑。

特征码格式

特征码用于定义每个APP的协议特征,比如可以定义端口号、域名、七层内容等

格式

$id $name:[$proto;$sport;$dport;$host url;$request;$dict]
  • $id: 唯一的APP编号,不能重复
  • $name: APP的名称,比如抖音
  • $proto: 传输层协议,tcp或udp
  • $sport: 源端口,1-65535,不设置表示匹配所有,一般不用设置源端口
  • $dport: 目的端口,1-65535,不设置表示匹配所有
  • $host: http或者https请求的域名,比如www.baidu.com
  • $dict: 七层内容字典,格式xx:aa|yy:bb,其中xx,yy是位置,表示第几个字节,而aa,bb表示十六进制内容,示例:00:a0|02:08|03:0a,表示第0个位置为0xa0,第2个位置为0x08,第3个位置为0x0a,注意第一位从0开始,如果位置为负数,表示从最后一个开始,一般不要用负数表示。

如何自定义特征库

下载特征库模板文件

首先我们要去官网随便下载一个特征库文件,注意解压后得到.cfg文件。

打开特征库文件

下载后可以通过文本文档或者其他文本工具打开,可以看到类似这样的内容,一行定义一个APP

8001 百度:[tcp;;;baidu.com;;]
8002 新浪:[tcp;;;sina.com;;]
8003 搜狐:[tcp;;;sohu.com;;]
8004 网易:[tcp;;;163.com;;,tcp;;443;126.com;;]
8005 凤凰网:[tcp;;;ifeng.com;;]
8006 人民网:[tcp;;;people.com.cn;;]
8007 凤凰网:[tcp;;;ifeng.com;;]

增加APP特征

可以在同一个分类中复制某个APP特征,追加到该分类的最后一行,这样用于保证appid中的分类字段是统一的 appid的低3位表示分类中的编号,高位表示分类id,比如8001,其中8表示分类,为常用网址,而001为编号,表示百度。

复制后首先需要修改appid,保证组内唯一,最好是组内编号最大值加1,比如当前最大值为8012,那新的appid就设置成8013,这样方便统一管理。

比如现在要增加一个常用网站google,那新增的特征码定义如下:

8008 谷歌:[tcp;;;www.google.com;;]

如果只想匹配443端口,可以定义为

8008 谷歌:[tcp;;443;www.google.com;;]

上传特征库

修改完成后需要保存特征库文件,然后在应用过滤插件中上传更新该特征库即可,这样就可以勾选新加的APP了。