0x00 前言
HyperScan是一款由Intel开发的高性能正则表达式匹配库,专为需要快速处理大量数据流的应用场景而设计。它支持多平台运行,包括Linux、Windows和macOS等操作系统,并针对x86架构进行了优化,以提供卓越的性能表现。HyperScan的核心功能是能够高效地执行多正则表达式的编译与扫描操作,特别适用于网络安全、内容过滤、数据挖掘等领域。
HyperScan的主要特性之一是其独特的"块模式"(Block Mode)工作方式,允许用户在不破坏原有数据流的情况下对大数据集进行分割处理,从而实现并行化处理,极大提升了处理速度。此外,它还提供了"矢量化"支持,利用现代CPU的SIMD(Single Instruction Multiple Data)指令集来加速正则表达式的匹配过程,进一步增强了性能优势。
0x01 安装环境
版本 | |
---|---|
操作系统 | CentOS 7 64 bit |
gcc | 4.8.5 20150623 (Red Hat 4.8.5-44) |
0x02 依赖安装
软件 | 版本 |
---|---|
Ragel | 6.9 |
CMake | >=2.8.11 |
Boost | >=1.57 |
2.1 Ragel安装
bash
yum install ragel
查看安装后版本
bash
[user@localhost download]$ ragel -v
Ragel State Machine Compiler version 7.0.0.9 August 2016
Copyright (c) 2001-2015 by Adrian Thurston
2.2 CMake 安装
bash
yum install cmake
查看安装后版本
bash
[user@localhost download]$ cmake -version
cmake version 2.8.12.2
2.3 Boost 下载与安装
这里有个坑,就是boost安装路径,LZ是直接抄过来的。但是hs安装时死活找不到boost。原因是./bootstrap.sh --prefix=~/tmp/boost-1.66
这个prefix路径需要写绝对路径,写~
是错误的。按照错误的路也能走下去,各位同学可以接着跟LZ走下去。
bash
wget https://dl.bintray.com/boostorg/release/1.66.0/source/boost_1_66_0.tar.gz
tar xvzf boost_1_66_0.tar.gz
cd boost_1_66_0
./bootstrap.sh --prefix=~/tmp/boost-1.66
./b2 install
0x03 安装Hyperscan
下载就不多说了,到github仓库直接选择自己需要的版本下载即可。
bash
https://github.com/intel/hyperscan/tags
安装步骤
bash
cd hyperscan
mkdir build
cd build
cmake -DBUILD_STATIC_AND_SHARED=1 -DBOOST_ROOT=/home/user/download/boost_1_66_0/~/tmp/boost-1.66 ../
make -j2
make install
debug模式
bash
cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_STATIC_AND_SHARED=1 -DBOOST_ROOT=/home/user/download/boost_1_66_0/~/tmp/boost-1.66 ../
编译过程
0x04 单元测试
进入build目录可以运行测试单元,看hyperscan是否能正常工作
bash
cd build/
bin/unit-hyperscan

0x05 参考文献
Hyperscan官网安装手册
Hyperscan 5.4.0 安装教程 (CentOS7环境)
Suricata5.0.1 Hyperscan 安装