写点什么

如何在 windows 下成功的编译和安装 python 组件 hyperscan

  • 2022 年 3 月 07 日
  • 本文字数:1339 字

    阅读完需:约 4 分钟

本文分享自华为云社区《Windows下python组件hyperscan的编译与安装》,作者:安全技术猿。

什么是 Hyperscan

hyperscan 是英特尔推出的一款高性能正则表达式引擎,一次接口调用可以实现多条规则与多个对象之间的匹配,可以支持多种匹配模式,块模式和流模式,它是以 PCRE 为原型开发,并以 BSD 许可证开源。


使用时分 2 步来实现

  • 第 1 步:对规则集进行预编译,编译时可以指定规则集类型的参数:正则表达式或文本模式

  • 第 2 步:利用编译好的规则集进行匹配,匹配时可以指定为块模式或流模式

    另外需要注意的是 x86 版本和 arm 版本的源代码是有区别的,官网下载 x86 版本(https://github.com/intel/hyperscan)无法在 arm 平台中编译通过,arm 版本下载地址(https://github.com/tqltech/hyperscan/releases)。


下面以在 windows X86 平台为例来讲解 hyperscan python 组件的编译安装方法:1、 下载和解压 hyperscan-5.4.02、 在 powershell 下创建 build 目录,执行 cd build3、 输入 cmake -G 命令,查看-G 支持的类型列表


4、 输入 cmake -G “Visual Studio 15 2017 Win64” -DBUILD_SHARED_LIBS=on …/命令


  • 提示命令执行失败,需要指定 BOOST_ROOT 参数

5、 下载 boost 源代码,解压到 hyperscan 目录中


6、 输入 cmake -G “Visual Studio 15 2017 Win64” -D BOOST_ROOT=%cd%/…/boost_1_78_0/ -DBUILD_SHARED_LIBS=on …/命令


  • 提示缺少 PCRE 和 sqlite3


7、 下载 PCRE、sqlite 源代码并解压到 hyperscan 目录中


8、 输入 cmake -G “Visual Studio 15 2017 Win64” -D BOOST_ROOT=%cd%/…/boost_1_78_0/ -DBUILD_SHARED_LIBS=on -D PCRE_SOURCE=%cd%/…/pcre-8.45/ …/命令,命令执行成功,build 目录下生成一系列的 vs2017 工程文件


9、 输入 cmake –build .命令执行编译,编译成功后分别在 bin、lib 目录下生成一系列文件


  • bin 目录列表



  • lib 目录列表


10、 下载 hyperscan python 源代码(https://pypi.org/project/hyperscan/),原来的 setup.py 无法在 windows 下安装成功,需要修改 setup.py 文件内容如下:

# -*- coding: utf-8 -*-from distutils.core import *
module1 = Extension("hyperscan.hyperscan", include_dirs = ['src/hyperscan'], libraries = ['hs', 'hs_runtime'], library_dirs = [r'../hyperscan-5.4.0/build/lib'], extra_compile_args = ['/Zi', '/Od'], extra_link_args = ['/DEBUG'], sources = ["src/hyperscan/hyperscanmodule.c"])
setup( name="hyperscan", #打包文件名称 库说明文件的文件名 version="0.2.0", package_dir = {'': 'src'}, packages = ['hyperscan'], package_data = {'': ['*']}, ext_modules=[module1])
复制代码

11、 输入 python setup.py install 命令进行 python 组件安装,提示安装失败,找不到 hs_compile_lit_multi,


12、 在 hs.def 中增加导出函数 hs_compile_lit_multi,重新编译 hyperscan 工程后再执行 python 组件安装脚本,安装成功


13、 成功执行 python 测试脚本表示安装成功,脚本如下:

import hyperscandb = hyperscan.Database()print(db)
复制代码



  • 执行成功

可以试试下面的漏扫服务,看看系统是否存在安全风险:>>>漏洞扫描服务


点击关注,第一时间了解华为云新鲜技术~​

发布于: 刚刚阅读数: 2
用户头像

提供全面深入的云计算技术干货 2020.07.14 加入

华为云开发者社区,提供全面深入的云计算前景分析、丰富的技术干货、程序样例,分享华为云前沿资讯动态,方便开发者快速成长与发展,欢迎提问、互动,多方位了解云计算! 传送门:https://bbs.huaweicloud.com/

评论

发布
暂无评论
如何在windows下成功的编译和安装python组件hyperscan_正则表达式_华为云开发者社区_InfoQ写作平台