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安裝
yum install ragel
查看安裝后版本
[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 安裝
yum install cmake
查看安裝后版本
[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走下去。
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倉庫直接選擇自己需要的版本下載即可。
https://github.com/intel/hyperscan/tags
安裝步驟
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模式
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是否能正常工作
cd build/
bin/unit-hyperscan
0x05 參考文獻
Hyperscan官網安裝手冊
Hyperscan 5.4.0 安裝教程 (CentOS7環境)
Suricata5.0.1 Hyperscan 安裝