xxHxx 发表于 2024-9-3 22:17:40

对SSE2模式匹配算法SSE2PatternFind的一点改造优化

本帖最后由 xxHxx 于 2024-9-4 10:34 编辑

       为对某软件的指定模块打特征码补丁,最近研究学习了各种搜索算法(Sunday、Shift_And、BNDM等),对比发现,内存特征码搜索还是下面两位大佬基于SSE2指令集的搜索算法速度最快。
于是认真学习了两位大佬的文章,根据自己的理解做了一点点改造和优化,分享给大家,欢迎拍砖!!!

学习参考文章如下,感谢大佬们分享的好文!
https://bbs.kanxue.com/thread-209946.htm
https://www.52pojie.cn/thread-1854232-1-1.html

主要改进:
①通过掩码的方式使其支持 前、中、后通配符 及半字节;
②通过SSE2指令集找到特征码字节序列中的第一个不为'??'的元素后,后续的字节只比较不是'??'的特征字节,优化比较字节数。

通过测试,根据不同的特征码型式(特征码长度不同、通配符数量不同等),在我的环境中,比优化前(上面文章中代码)搜索速度提升5%~15%左右。

本人不是计算机专业,也不从事相关工作,纯属业余爱好,代码难免错漏,更谈不上优雅,望各位大佬批评指正!

20240904------判断特征码全都是'??'时,返回FALSE;修改结束搜索的条件。

**** Hidden Message *****


wtujoxk 发表于 2024-9-3 22:40:23

谢谢分享!!!

EE 发表于 2024-9-3 22:41:44

感谢表哥的分享

xintiandi 发表于 2024-9-3 22:47:18

支持一下,虽然看不懂

PoleStar 发表于 2024-9-3 22:53:11

感谢分享,学习一下

lhglhg 发表于 2024-9-3 22:56:09

支持一下,虽然看不懂

zixuan203344 发表于 2024-9-3 23:02:26

感谢分享,学习一下

flexlm 发表于 2024-9-3 23:37:51

感谢分享,学习一下

lies2014 发表于 2024-9-4 00:25:27

谢谢分享!

镜中人 发表于 2024-9-4 00:34:49


谢谢大佬的分享!
回复学习一下
页: [1] 2 3 4
查看完整版本: 对SSE2模式匹配算法SSE2PatternFind的一点改造优化