在我看来,感染型病毒才是真正称得上为病毒,因为感染型病毒的手动清除比较困难,大学的时候,帮同学杀毒最烦躁的就是碰上感染型的病毒,除非写一个程序自动处理,不然手动清除是相当麻烦的.当然我所谓的真正病毒主要是在我看来,能够轻易用手工清除的病毒都不是好的病毒.现在病毒制造者追求的是快速的传播速度,而忽略了病毒的"顽固性",一个木马简单的就使用一个启动的注册表项显然在清理上太方便了,甚至可以进安全模式删了注册表项,连病毒尸体都可以无视,这样就已经不能发挥作用了.
随着对PE格式的深入研究和高级语言的发展,编写感染型的病毒已经不再是只能用asm才能做到的.高级语言如VC同样也可以完成,不过缺点就是编译出来的病毒体太大.也是,现在的硬件水平,人们已经不再在乎这10+KB的空间.但是,病毒编写是一种艺术,这种艺术在于它的隐蔽性,短短的注入100byte,利用程序本身的空隙不增加程序的长度是这种艺术的体现.当然,代码长度的限制也必然导致注入代码功能的减少.一个星期前写了一个感染型病毒的雏形,写下来当作是一种复习吧.
注入感染:
既然PE程序本身存在的空白可利用空间不大.那么采取一种折中的方式,在感染PE文件时,注入病毒文件的启动代码,这样就节省了大部分空间,当检查到病毒实体被清除后,可以采取破坏宿主程序运行流程的方式进行"示威"