在日常工作中,我们经常会需要使用闪存(也称为U盘或者优盘),但是总免不了受到U盘病毒的困扰,一般U盘免疫的原理主要是建立一个无法删除的“autorun.inf”,或者是在NTFS下设置权限来防止病毒对其删除后再新建(当然还有设置antorun.inf相关注册表的权限来拒绝更改U盘的右键菜单以此来让病毒无法运行,但这只能针对单个电脑进行免疫)。前种方法有个致命的缺点,就是可以利用重命名autorun.in免疫文件夹令其失效,甚至针对性的利用“rd *..\来解除常见免疫工具所做的免疫,而后一种方法更是可以调用cacls命令来解除权限。综合上面的情况,只有我们无法重新命名或者删除“autorun.inf”这个文件夹,免疫才能算是彻底的成功!其实利用WinHex手动伪造磁盘错误就可以导致文件拒绝访问,这样就可以实现无法删除和重命名的目的了。
首先格式化U盘,文件系统选择FAT32格式,然后在U盘根目录下用记事本新建名为Autorun.inf的内容为空的文件,或者是直接新建一个名为“Autorun.inf”的文件夹。
接下来我们打开16进制汇编工具WinHex,选择下级选项“打开磁盘”(或者直接按F9键), 选择需要编辑 的U盘,然后定位到Autorun.inf文件夹上,把右下角显示的“Autorun.inf”所对应的十六进制“10”改为“E2”。需要注意的是,并非所有文件的这两个字节都是“10”,这主要跟文件的属性有关,有的可能是“20”。
也不一定只能更改为“E5”或者“E7”,这主要是牵涉到更改后文件的属性问题,比如“E5”就表示修改后的文件属性为“隐藏”,而“E7”则表示文件是只读、隐藏的系统属性。更改完后我们保存一下扇区,然后到原先的U盘刷新一下,此时本来是文件夹的图标就会变成“Autorun.inf”文件原本的图标了,并且这个文件是拒绝访问的。
这个文件虽然无法被手动删除,也无法使用一些工具删除,比如Wsyscheck,但是却可以通过逆向思维,再使用WinHex更政回原来的字节再进行删除就可以了。如果不想手动免疫的话,我也提供了根据此原理制作的一个小工具。这个程序还可以给本地硬盘进行免疫,可谓是免疫的经典之作。
最后我来总结一下:我们的免疫原理就是使用Winhex操作磁盘扇区导致磁盘错误而造成文件无法访问,来达到免疫的目的。此方法是针对U盘进行免疫的,如果是针对电脑免疫的话,注册表权限设置法也是一个不错的选择。