首页
社区
课程
招聘
[原创]火绒剑粉碎文件的分析
发表于: 2022-8-9 15:34 20025

[原创]火绒剑粉碎文件的分析

2022-8-9 15:34
20025

上次我已经分析了火绒是如何杀死我们进程的,可是没想到哇,客户竟然还会使用文件粉碎机粉碎我们的文件,被逼无奈,我只能继续的分析一下火绒的粉碎文件的实现,我不得不说为什么它会很多的方式去粉碎文件,一个地方注意不到文件就会被删除。难受哇!
话不多说,我们现在看看火绒粉碎机是如何粉碎的文件。

首先我们需要找一个很好的切入点去分析,还是从导入表入手,然后再gitHub上找一找别人是如何使用驱动删除文件。
驱动删除文件
图片描述
我们就从这个github上看到的删除文件看一下火绒驱动的导入表,还是经典的下断环节。
ida引用IoFileObjectType

winDBG开始下断点 图片描述

命中了第一个断点,还是原来的操作直接让函数返回失败(根据杀死进程的分析,火绒的驱动会使用多种方法去完成所需的功能,因此这个返回失败,它就会调用其他的驱动口,真的很恶心!)
图片描述
然后让第一个断点失效,我们看它还会调用哪个驱动的口。
图片描述
同样的步骤,我们去掉第二个命中的断点,
图片描述
我们又命中了第3个断点,我们依旧如此操作 图片描述
还是返回失败
图片描述图片描述
貌似我们这样都返回失败了以后,我们的文件没有被删除。不过我之前这几个函数返回失败了以后,也依旧被删除了。
我们继续看看调用ZwQuerySystemInformation的地方,我已经下断确定过了,也会通过这里获取句柄信息,造成我们的文件被删除。
图片描述


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

最后于 2022-8-10 15:37 被lwl编辑 ,原因: 更新错误的地方
收藏
免费 9
支持
分享
最新回复 (6)
雪    币: 1997
活跃值: (851)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
佬太强了
2022-8-9 15:43
0
雪    币: 1367
活跃值: (2121)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
怎么拦截火绒的IO啊
2022-8-9 16:04
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
hook火绒的DeviceIoControl确实可以防止文件粉碎,但是如何判断粉碎的是自己的文件还是别人的文件呢?
如果不能的话,那么会导致火绒的文件粉碎功能失效
2023-1-12 18:18
0
雪    币: 1054
活跃值: (505)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
居然没人用ZwSetInformationFile,这个强删文件也挺好用的
2023-1-13 15:45
0
雪    币: 660
活跃值: (1465)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
lwl
6
CaptainNeil hook火绒的DeviceIoControl确实可以防止文件粉碎,但是如何判断粉碎的是自己的文件还是别人的文件呢? 如果不能的话,那么会导致火绒的文件粉碎功能失效
它在IO通讯的时候,会上传文件的句柄,你获取一下它的文件路径,或者是上传文件的路径,你做一下匹配就行了
2023-1-29 10:58
0
雪    币: 20
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
7
DeviceIoControl 的入参是一个指针,数据结构是自己定义的,要怎么通过这个指针确定句柄呢
2023-1-30 10:57
0
游客
登录 | 注册 方可回帖
返回
//