CentOS 7安裝hyperscan

0x00 前言

HyperScan是一款由Intel開發的高性能正則表達式匹配庫,專為需要快速處理大量數據流的應用場景而設計。它支持多平臺運行,包括Linux、Windows和macOS等操作系統,并針對x86架構進行了優化,以提供卓越的性能表現。HyperScan的核心功能是能夠高效地執行多正則表達式的編譯與掃描操作,特別適用于網絡安全、內容過濾、數據挖掘等領域。

HyperScan的主要特性之一是其獨特的“塊模式”(Block Mode)工作方式,允許用戶在不破壞原有數據流的情況下對大數據集進行分割處理,從而實現并行化處理,極大提升了處理速度。此外,它還提供了“矢量化”支持,利用現代CPU的SIMD(Single Instruction Multiple Data)指令集來加速正則表達式的匹配過程,進一步增強了性能優勢。

0x01 安裝環境

版本
操作系統CentOS 7 64 bit
gcc4.8.5 20150623 (Red Hat 4.8.5-44)

0x02 依賴安裝

軟件版本
Ragel6.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 安裝

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/74503.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/74503.shtml
英文地址,請注明出處:http://en.pswp.cn/web/74503.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習的一百個概念(9)學習曲線

前言 本文隸屬于專欄《機器學習的一百個概念》,該專欄為筆者原創,引用請注明來源,不足和錯誤之處請在評論區幫忙指出,謝謝! 本專欄目錄結構和參考文獻請見[《機器學習的一百個概念》 ima 知識庫 知識庫廣場搜索&…

macvlan 和 ipvlan 實現原理及設計案例詳解

一、macvlan 實現原理 1. 核心概念 macvlan 允許在單個物理網絡接口上創建多個虛擬網絡接口,每個虛擬接口擁有 獨立的 MAC 地址 和 IP 地址。工作模式: bridge 模式(默認):虛擬接口之間可直接通信,類似交…

linux文件上傳下載lrzsz

lrzsz 是一個在 Linux 系統中用于通過串行端口(如 ZMODEM、XMODEM、YMODEM 等協議)進行文件上傳和下載的工具集。它通常用于在終端環境中通過串口或 SSH 連接傳輸文件。 安裝 lrzsz 在大多數 Linux 發行版中,你可以使用包管理器來安裝 lrzsz。 Debian/Ubuntu: sudo apt-ge…

單片機學習之SPI

物理層 串行全雙工總線 需要四根線:SCLK(時鐘線),CS(片選線)、MOSI(主設備輸出、從設備輸入),MISO(主設備輸入,從設備輸出)。 片選信號 片選信號CS是用來…

大模型應用初學指南

隨著人工智能技術的快速發展,檢索增強生成(RAG)作為一種結合檢索與生成的創新技術,正在重新定義信息檢索的方式,RAG 的核心原理及其在實際應用中的挑戰與解決方案,通用大模型在知識局限性、幻覺問題和數據安…

docker-compose部署prometheus+grafana+node_exporter+alertmanager規則+郵件告警

目錄 一.docker-compose文件 二.配置文件 三.文件層級關系,docker-compose和配置文件位于同級目錄 四.node_exporter頁面json文件 五.效果展示 prometheusalertmanager郵件告警 grafana面板效果 六.涉及離線包 一.docker-compose文件 [rootsulibao prometh…

AI設計再現新引擎,科技創新又添新動能——廣東省首家行業AI設計工程中心獲批成立

近期,大捷智能科技(廣東)有限公司(以下簡稱“大捷智能”)憑借其在人工智能與智能制造領域的突出研發實力與創新科技成果,由廣東省科技廳批準設立“廣東省模具智能設計與智能制造工程技術研究中心”。 廣東省…

【MongoDB + 向量搜索引擎】MongoDB Atlas 向量搜索 提供全托管解決方案

在代碼審計項目中,MongoDB可以用于存儲元數據和部分結構化信息,但要高效處理向量相似性搜索,需結合其他工具。以下是具體分析: 1. MongoDB 的適用場景 元數據存儲: 存儲代碼片段的文件路徑、行號、語言類型等結構化信…

基于ANSYS 概率設計和APDL編程的結構可靠性設計分析

01 可靠度基本理論 結構的極限狀態:整個結構的一部分超過某一特定狀態就不能滿足設計規定的某一功能要求。結構的極限狀態實質上是結構工作狀態的一個閥值,如果工作狀態超過這一閥值,則結構處于不安全、不耐久或不適用的狀態;若工…

CyclicBarrier、Semaphore、CountDownLatch的區別,適用場景

CyclicBarrier、Semaphore 和 CountDownLatch 是 Java 并發包中用于線程協作的工具類,它們雖然都與線程同步相關,但設計目的和使用場景有顯著差異。以下是它們的核心區別和典型應用場景: 1. CountDownLatch 核心機制 一次性計數器&#xf…

新能源汽車測試中的信號調理模塊:從原理到實戰應用

摘要 信號調理模塊(Signal Conditioning Module, SCM)是新能源汽車(NEV)測試系統中的關鍵環節,直接影響數據采集的精度與可靠性。本文面向HIL測試工程師、電機測試工程師及整車動力經濟性測試工程師,系統性…

Qt5 Mac系統檢查休眠

在開發跨平臺應用程序時,有時候我們需要檢測系統的狀態,比如是否處于休眠或喚醒狀態。Qt是一個強大的跨平臺應用開發框架,支持多種操作系統,包括Windows、Linux、macOS等。在這個場景下,我們關注的是如何在Qt5.10中檢測到系統是否休眠以及在Mac上實現這一功能。本文將深入…

RabbitMQ簡單介紹和安裝

RabbitMQ簡單介紹 一.RabbitMQ介紹二.RabbitMQ的作用1.異步解耦2.流量削峰3.消息分發4.延遲通知 三.RabbitMQ安裝(Ubuntu)1.先安裝Erlang2.安裝RabbitMQ3.安裝RabbitMQ的管理界面4.創建虛擬機5.端口號信息 四.工作原理圖 一.RabbitMQ介紹 RabbitMQ 是一款…

匯編學習之《call, return指令》

call 指令 call 指令就是調用函數的執行,不過它也是幾個指令的組合 第一步通過jmp 函數地址的方式先跳轉到函數 第二步通過push 指令將函數地址指令額下一行的指令的地址壓入棧中。 我們來驗證下 首先打開OllyDbg,導入你的程序,找到一個call 函數&…

接口自動化學習三:參數化parameterize

使用parametrize之前: def add(x,y):return xy class TestAddFunction(object):def test01(self):resadd(2,4)assert 6resdef test02(self):resadd(4,6)assert 10resparametrize參數化之后: import pytest def add(x,y):return xydata[(10,20,30),(200…

全面解析 Mybatis 與 Mybatis-Plus:深入原理、實踐案例與高級特性對比

全面解析 Mybatis 與 Mybatis-Plus:深入原理、實踐案例與高級特性對比 🚀 前言一、基礎介紹 ?1. Mybatis 簡介 🔍2. Mybatis-Plus 簡介 ? 二、核心區別與高級特性對比 🔎1. 開發模式與配置管理2. 功能豐富度與擴展性3. 自動填充…

【區塊鏈安全 | 第十九篇】類型之映射類型

文章目錄 映射類型可迭代映射 映射類型 映射類型使用語法 mapping(KeyType KeyName? > ValueType ValueName?),映射類型的變量聲明使用語法 mapping(KeyType KeyName? > ValueType ValueName?) VariableName。 KeyType 可以是任何內置值類型、bytes、st…

動態循環表單+動態判斷表單類型+動態判斷表單是否必填方法

頁面效果: 接口請求到的數據格式: list: [{demandType: "設備輔助功能要求",demandSettingList: [{id: "1907384788664963074",name: "測試表單",fieldType: 0,contentValue: "",vaildStatus: 0, // 0 非必填&a…

藍橋杯DFS算法題(java)

最大連通 鏈接: https://www.lanqiao.cn/problems/2410/learning/ 問題描述 小藍有一個 30 行 60 列的數字矩陣,矩陣中的每個數都是 0 或 1 。 1100100000111111101010010010011010101110110110111010011111100100000000010100011011000000100101100011…

解鎖物種分布模擬新技能:MaxEnt 模型與 R 語言的奇妙融合

技術點目錄 第二章、常用數據檢索與R語言自動化下載及可視化方法第三章、R語言數據清洗與特征變量篩選第四章、基于ArcGIS、R數據處理與進階第五章、基于Maxent的物種分布建模與預測第六章、基于R語言的模型參數優化第七章、物種分布模型結果分析與論文寫作 —————————…