[原创]火绒剑粉碎文件的分析
2022-8-9 15:34 9227
上次我已经分析了火绒是如何杀死我们进程的,可是没想到哇,客户竟然还会使用文件粉碎机粉碎我们的文件,被逼无奈,我只能继续的分析一下火绒的粉碎文件的实现,我不得不说为什么它会很多的方式去粉碎文件,一个地方注意不到文件就会被删除。难受哇!
话不多说,我们现在看看火绒粉碎机是如何粉碎的文件。
首先我们需要找一个很好的切入点去分析,还是从导入表入手,然后再gitHub上找一找别人是如何使用驱动删除文件。
驱动删除文件
我们就从这个github上看到的删除文件看一下火绒驱动的导入表,还是经典的下断环节。
winDBG开始下断点
命中了第一个断点,还是原来的操作直接让函数返回失败(根据杀死进程的分析,火绒的驱动会使用多种方法去完成所需的功能,因此这个返回失败,它就会调用其他的驱动口,真的很恶心!)
然后让第一个断点失效,我们看它还会调用哪个驱动的口。
同样的步骤,我们去掉第二个命中的断点,
我们又命中了第3个断点,我们依旧如此操作
还是返回失败
貌似我们这样都返回失败了以后,我们的文件没有被删除。不过我之前这几个函数返回失败了以后,也依旧被删除了。
我们继续看看调用ZwQuerySystemInformation的地方,我已经下断确定过了,也会通过这里获取句柄信息,造成我们的文件被删除。
这两天主要就是拦截火绒的DEVICEIOCONTROL发现0x220044和0x228004就可以了,并不需要处理第一个函数和第四个函数,我也拦截了一下,其中,第一个函数会无数次的调用,并不会访问到我们强行粉碎的文件。
还是研究如何拦截火绒的IO,当粉碎我们的文件的时候,我们就返回失败。好了,让一切归于平静。
[2022夏季班]《安卓高级研修班(网课)》月薪三万班招生中~
最后于 2022-8-10 15:37 被lwl编辑 ,原因: 更新错误的地方