查看: 10366|回复: 20
收起左侧

[分享] 火绒的gpu加速

  [复制链接]
B100D1E55
发表于 2025-8-30 07:16:18 | 显示全部楼层 |阅读模式
本帖最后由 B100D1E55 于 2025-8-30 07:16 编辑

火绒gpu加速我一直很感兴趣,毕竟它是目前市面上唯一一款支持gpu客户端加速扫描引擎的产品(tdt那种硬件厂家独占的东西不考虑)
火绒使用directx的compute shader派发gpu任务,通过gpu profiler可以dump出火绒gpu加速的一些具体细节。在某人的怂恿下我终于决心看一下蛋疼的汇编



去除掉loop unroll的内容发现加速核每个线程主要做了几件事情:
1. 一块代码负责把大写字符转成小写,猜测用于大小写不敏感匹配的预处理
2. 初始读入4byte,然后从每个byte作为起始点查表寻找初始状态
3. 得到初始状态后通过一个看着像哈希表的buffer查找哈希参数。之所以认为是哈希表是因为几条汇编实现了((A*b)mod p)mod n这样的操作,很像carter-wegman哈希函数
4. 读取下一个输入byte,通过base地址+哈希值索引最后一个表,这个表内容有两个:一个是字符,和刚读入的byte进行匹配,匹配成功则使用包含状态地址再次索引第三步的哈希表。如果状态地址是-1则结束匹配
5. 匹配线程最终将匹配条目+偏移写回显存

虽然不是100%确定,这块应该是实现了一个类AC自动机用于多特征匹配。AC自动机允许每个输入字符在合理的时间复杂度和内存开销下进行状态迁移+特征匹配输出,因此很多特征引擎会使用此算法。火绒这里的实现更像一个简化的DFA匹配,因为它不包含fail traversal将每个字符控制在O(1)开销有效规避了线程发散,从而充分发掘gpu上的执行效率

猜测执行模式是:gpu加速病毒字典在输入数据流上的匹配,匹配结果传回cpu再通过一个验证逻辑使用偏移/命中特征对应到实际毒库条目中。gpu起到一个前期过滤作用,而cpu可以专注于仿真/解包/匹配验证。进一步来说,gpu的前期过滤作用使得它并不需要精确的匹配,例如可以只匹配特征串的前缀交由后续cpu进行验证来控制gpu特征库大小

特征匹配就算在今日依然有很大价值,其中一些步骤并行度高适合用gpu/simd硬件加速。火绒愿意做这个功能且不绑定特定硬件厂商还是很赞的





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 14魅力 +1 人气 +61 收起 理由
HEMM + 1
hipoxiaxxx + 6
天原 + 3 很给力!
Picca + 3
hackerblog + 3

查看全部评分

驭龙
发表于 2025-8-30 07:34:00 来自手机 | 显示全部楼层
你都好几年没怎么发帖了,我前两年才滚回来论坛玩,就没见过你发帖,还是很怀念以前你发的技术帖的

评分

参与人数 1人气 +3 收起 理由
B100D1E55 + 3 好久不见

查看全部评分

Jerry.Lin
发表于 2025-8-30 08:40:15 | 显示全部楼层
诶嘿

评分

参与人数 2人气 +6 收起 理由
QVM360 + 3 感谢支持,欢迎常来: )
B100D1E55 + 3 哦吼

查看全部评分

火绒工程师
发表于 2025-8-30 09:42:46 | 显示全部楼层
感谢您对火绒的支持~绒绒一定会再接再厉,不断完善我们的产品哒~

评分

参与人数 1人气 +2 收起 理由
B100D1E55 + 2 请继续给力

查看全部评分

B100D1E55
 楼主| 发表于 2025-8-30 10:35:44 | 显示全部楼层
驭龙 发表于 2025-8-30 07:34
你都好几年没怎么发帖了,我前两年才滚回来论坛玩,就没见过你发帖,还是很怀念以前你发的技术帖的

工作生活忙起来就慢慢没精力折腾了,这次也是被某个火粉再三安利就好奇折腾了一下
LastF1ame_
发表于 2025-8-30 10:50:19 | 显示全部楼层
哇,瞧我发现了谁,大佬出现了
ZSsafe
发表于 2025-8-30 12:57:55 | 显示全部楼层
前排支持一下
wangkaka
发表于 2025-8-30 16:48:21 | 显示全部楼层
哇,大佬好多好多年不见你了
驭龙
发表于 2025-8-30 19:50:44 | 显示全部楼层
B100D1E55 发表于 2025-8-30 10:35
工作生活忙起来就慢慢没精力折腾了,这次也是被某个火粉再三安利就好奇折腾了一下
当初火绒宣传支持TDT的vPRO平台技术,我换了vPRO设备以后,安装火绒,愣是没找到支持TDT的代码和函数,只有directx方式的GPU加速,我还以为我太菜,没看出火绒有TDT代码呢。

现在看来是真的从TDT改成directx方式了,不过火绒的GPU加速效果是真快不少,效果比MD的TDT好很多
pal家族
发表于 2025-8-30 20:16:05 | 显示全部楼层
冷血小黄鸭回归了
B100D1E55
 楼主| 发表于 2025-8-31 01:53:23 | 显示全部楼层
wangkaka 发表于 2025-8-30 16:48
哇,大佬好多好多年不见你了

好久不见

只是上来冒个泡其实一直有几个选题想折腾的,但本业事情好多就一直拖着没做,现在安全知识已经彻底out了
B100D1E55
 楼主| 发表于 2025-8-31 02:00:22 | 显示全部楼层
驭龙 发表于 2025-8-30 19:50
当初火绒宣传支持TDT的vPRO平台技术,我换了vPRO设备以后,安装火绒,愣是没找到支持TDT的代码和函数,只有 ...

tdt我觉得比较有价值的是需要专有硬件支持的那些(比如性能计数器或者是一些private isa的东西),像gpu加速这种除非是受限于统一内存的要求应该是要做成一个标准api支持的功能

而tdt那些个功能感觉维护起来也很累,你看ESET勒索护盾报毒名一一对应intel每一代核心架构,因为每代微架构内部行为特征变化都不小估计他们每出一代新u就要重新搞个model。不知道他们现在这种境地还有没有钱继续维护更新
B100D1E55
 楼主| 发表于 2025-8-31 02:01:42 | 显示全部楼层
pal家族 发表于 2025-8-30 20:16
冷血小黄鸭回归了

后悔选了个中二名字,我要改名温柔小黄鸭!
驭龙
发表于 2025-8-31 02:28:42 来自手机 | 显示全部楼层
B100D1E55 发表于 2025-8-31 02:00
tdt我觉得比较有价值的是需要专有硬件支持的那些(比如性能计数器或者是一些private isa的东西),像gpu ...

我的设备就是完整的vPro认证产品,所以我有关注ESET的TDT模块更新,大概就是内部版本一年也有几次更新,但是近期我发现ESET已经不加载核心显卡驱动了,也只是加载DX的模块,问官方测试组负责人,他居然不知道ESET的TDT需要加载核心显卡驱动,我也是无语了。目前只有MD还在一如既往的支持TDT,核心显卡驱动也正常被MD进程加载。这也是我卸载ESET去玩别的软件的原因之一
wwwab
发表于 2025-8-31 08:40:17 | 显示全部楼层
火绒还有个研究是用NPU推理机器学习引擎,pt => ONNX => Inter OpenVino™ IR,目前还没有投放到正式产品中。
https://static.tianyancha.com/pa ... 55bf936ce520a5a.pdf
wohaofan1200
发表于 2025-8-31 13:08:44 | 显示全部楼层
支持大佬啊,不愧是大佬
B100D1E55
 楼主| 发表于 2025-9-4 08:25:24 | 显示全部楼层
wwwab 发表于 2025-8-31 08:40
火绒还有个研究是用NPU推理机器学习引擎,pt => ONNX => Inter OpenVino™ IR,目前还没有投放到正式 ...

链接打不开……https://www.patentguru.com/cn/company/611566 是CN120429866A这个?
ydgaga
发表于 2025-9-4 11:21:44 | 显示全部楼层
现在CPU都集成AI单元,以后杀毒软件,是不是也可以用这部分能力,来推算电脑中的病毒?
wwwab
发表于 2025-9-4 15:06:51 | 显示全部楼层
B100D1E55 发表于 2025-9-4 08:25
链接打不开……https://www.patentguru.com/cn/company/611566 是CN120429866A这个?

是的
Picca
发表于 2025-9-6 00:53:33 | 显示全部楼层
pal家族 发表于 2025-8-30 20:16
冷血小黄鸭回归了

真的诶,以前一直以为是什么16进制码之类的,才注意到是BLOODLESS,666......
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-12-26 16:21 , Processed in 0.095918 second(s), 4 queries , Redis On.

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表