C语言简易的硬盘操作器
用C语言写的
说一下程序命令
文件名 ReadMBR //这个是读取MBR
文件名 WriteMBR 要写入主引导记录的文件名 //这个是改写MBR
命令栗子(当文件名为set.exe的时候)
set.exe ReadMBR //这个是读取MBR
set.exe WriteMBR 1.txt //这个是改写MBR(将当前目录下的 1.txt 文件中的内容写入到主引导记录。。。假设文件存在)
测试环境:XP
编辑器:VC++6.0
将上面的一条或者两条命令保存为 XXX.bat (XXX为你的BAT文件名)
下面是代码
#include
#include
#include
#include
#include #define DiskSize 512 //一个扇区512字节void pause();
void ReadMBR();
void WriteMBR(unsigned char *Byte);
int bl;int main(int argc,char* argv[])
{SetConsoleTitle("Read Master Boot Record By:紫玫冰心");if(argc==2 && !strcmp(argv[1],"ReadMBR"))ReadMBR();//读MBRelse if(argc==3 && !strcmp(argv[1],"WriteMBR")){//写MBRFILE *MBRFile;unsigned char MBR[DiskSize]={0};MBRFile=fopen(argv[2],"rb+");if(!MBRFile){printf("Can't open file");pause();return 0;}else if(!feof(MBRFile)){fread(MBR,1,DiskSize,MBRFile);WriteMBR(MBR);fclose(MBRFile);}}else{//产生一个随机数int r;srand((unsigned)time(NULL));r=rand()%1000;printf("%d\n",r);}return 0;
}
void pause()
{printf("\nPress any key to countinue");getchar();
}
void ReadMBR()
{//硬盘文件FILE *Disk;//保存文件FILE *File;int j;//引导记录unsigned char MBRCode[DiskSize]={0};Disk=fopen("\\\\.\\PhysicalDrive0","rb+");//打开硬盘if(!Disk)printf("Hard Disk not found!");//没有打开硬盘else if(!feof(Disk)){fseek(Disk,0,SEEK_SET);//移动到引导记录的位置fread(MBRCode,1,DiskSize,Disk);//读取引导记录fclose(Disk);//关闭硬盘File=fopen("MBR.ima","wb+");//硬盘文件if(!File)puts("Can't create 'MBR.ima'!");//没有创建文件else if(!feof(File)){//将引导记录保存fwrite(MBRCode,DiskSize,1,File);fclose(File);//关闭文件printf("----------------------Master Boot Record(Machine Code-char)---------------------");for(j=0;j
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
