如果说,有一个毒可以动态换掉还原软件,那么,还原软件就可以动态的还原,难度就在于系统会不停止的发送读写下来。如果说这时运行的还原强制停止,马上就会导致系统蓝屏。主要原因是:1、有未处理完的IRP,2、还原对于有些文件进行了处理,当他停止运行,这些文件的读写会出错导致蓝屏。
这就是网上说的第一代机器狗的原理,此种毒方法原理简单,易于防止,但是作用非常大,开一代先河,这种思想影响了后来所有毒的发展。不过,我认为这个毒能在2007年出来,最大得益于穿透还原更新游戏的思想发展。穿透还原,开始是动态停止,然后发展到根据进程名进行操作。我认为最好的还是:快速做出来方法,引出一个虚拟盘然后对此进行读写操作。这种办法和机器狗的穿透有异曲同工之妙。。只不一个引出的是自己的设备,一个引出的别人的。
这一代的狗最大的问题在于:穿透前,要计算文件的物理磁盘偏移量,所以,当时防止方法有很多,都是碰上了这点,所以暂时可以防止,
1、在有还原的情况下,删除userinit文件,再复制一个过来,就无法穿透。(原因:有还原保护情况下,复制过来的东西会重新写在一个位置,这个地方,重启会还原,所以穿透了也没有用。)
2、压缩(360保护器当年的方法)。类似于上面的方法。
谢谢大家支持,暂时写到这里,大家认为好,就顶。我就继续分析。直到最近,最新的毒。。
谢谢上次大家的支持..
第二类:
机器狗第二次变种主要是针对压缩磁盘和删除文件可以防止来进行的.改变了这方面的不足.(在这之前的一些变种,如重新编译跳过杀软,改变一些非关键东西,如文件名,设备名,这些不算)
为了达到这个目的,有二个办法:1、自己来解释文件系统格式,此种方法难度大兼容性不好。(网上见过有人说,狗用过这个办法)。
2、利用WINDOWS的优点。。在驱动中创建一个磁盘设备,这个磁盘设备处理读、写、还有一些基本控制,如:取硬盘分区分布,分区大,格式化等等。。这时WINDOWS系统会自动把文件系统驱动加载到创建的磁盘设备上,这个磁盘就可以通过符号连接来读写了。如果说符号连接名刚好是:x:这样的形式,你就可以看到资源管理器中会多出一个分区来。
机器狗的驱动,在自己的磁盘设备中,得到上面的读写,主要有三个参数:(1)偏移量,(2)长度,(3)缓冲区,这时,他只要根据当前磁盘所在偏移量+分区偏移量,就可以计算出当前读写数据在物理磁盘中位置。这时再利用上一篇中讲的办法,一成不变的去读取这个位置的数据传给缓冲区或把缓冲区数据写到物理磁盘。这时就可以达到穿透目的。
(我所发现的这一类的狗都是这个办法。)
这个办法还有一个好处:可以新建文件。比如:我们去年发现的,一个毒会建立一个文件在启动项中。这时,他就不用去覆盖WINDOWS的系统文件了。使得他更加有通用性,稳定性也增加了。而磁盘压缩之所以失效是因为,不管你怎么处理,只要WINDOWS能认识,那么毒也可以识别,关键他们都是用的一个文件系统。而且编程难度低。。(以上原理可参见filedisk,题外话:我发现的狗中,至少有一个就是直接用的FILEDISK改的。)
第三类狗:
此种狗是否出现我不太清楚,不过他的原理是可行的。此原理的发现者就是大名在外的“猪头三”,原理简单得不能再简单。直接通过ATA pass写入当前磁盘。而还原99%只处理了读写,而ATA PASS 是不通过读写的。所以,防不了。
第四类狗:
此狗出现,当时严重威胁了易速用户安全。即在启动项中增加一个文件的狗。此狗最大特别是集成了第二类虚拟盘,第三类狗的找漏洞(当然并不是这一个漏洞)。他会加载一个驱动,此驱动会自己构建SCSI命令的IRP,直接发给真实的磁盘设备。而磁盘设备上的驱动,一般不会处理这个SCSI命令,会直接转发给下层,这时,他就跳过了还原。可以直接读写。此狗的难度在于SCSI命令。
第五类狗:
当狗发展到这里时,我以为基本结束了,最多找到一些未知BUG而已。不过,后来的发展出乎意料。这时有人利用HOOK技术中的一个关键技术。查找比disk.sys更下层的驱动,通过直接发送SCSI命令达到穿透。此类就是:5月1号的变种。