分享
 
 
 

ReGhost-最终版,可用于光碟使用!

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

#include <stdio.h>

#include <malloc.h>

#include <stdlib.h>

#include <string.h>

struct ghost

{

char mode[6];

char fname[13];

};

void sysBack(char ghfile[]);

void help();

int HeXin(int num);

int runghost(struct ghost gho,int xuanze);

void sysBack(char ghfile[])

{

system("tw /q");

system(ghfile);

}

int HeXin(int num)

{

struct ghost gho;

char *p=(char *)malloc(sizeof(char) * 200);

char tempfilename[13];

char name[10];

int panduan;

FILE *hddfile;

if(num==1)

{

strcpy(gho.mode,"pdump");

strcpy(name,"\"备份\"");

printf("请输入%s镜像文件名,不包括后缀!:",name);

}

else

{

strcpy(gho.mode,"pload");

strcpy(name,"\"还原\"");

printf("请输入%s镜像文件名,不包括后缀!:",name);

}

do

{

panduan=1;

scanf("%[QWERTYUIOPASDFGHJKLMNBVCXZ_qwertyuiopasdfghjklzxcvbnm0123456789]",p);

fflush(stdin);

if(strlen(p)>8)

{

printf("出错~!文件名太长或文件名不标准!!\n");

printf("请重新输入%s镜像文件名,不包括后缀!:",name);

continue;

}

strcpy(tempfilename,p);

strcat(tempfilename,".gho");

hddfile=fopen(tempfilename,"rb");

if(num==1 && hddfile != NULL)

{

printf("硬盘上已经存在相同名称的文件,建议不要重复使用同一文件名的备份!!\n");

printf("请重新输入%s镜像文件名,不包括后缀!:",name);

fclose(hddfile);

continue;

}

if(num==1 && hddfile == NULL)

{

hddfile=fopen(tempfilename,"wb");

if(hddfile != NULL)

{

fclose(hddfile);

remove(tempfilename);

}

else

{

printf("文件名不符合命名规则!\n");

printf("请重新输入%s镜像文件名,不包括后缀!:",name);

continue;

}

}

if(num==2 && hddfile == NULL)

{

system("dir/w *.gho");

printf("指向的镜像文件不存在,不能继续~!\n");

printf("请重新输入%s镜像文件名,不包括后缀!:",name);

continue;

}

strcpy(gho.fname,p);

panduan=0;

}while(panduan);

num=runghost(gho,num);

return num;

}

int runghost(struct ghost gho,int xuanze)

{

char panduan,ForPanduan;

char ghfile[100]="ghost8 -clone,mode=";

FILE *ForHDD;

switch(xuanze)

{

case 1:

strcat(ghfile,gho.mode);

strcat(ghfile,",src=1:1,dst=");

strcat(ghfile,gho.fname);

strcat(ghfile,".gho -z9 -rb -sure");

break;

case 2:

strcat(ghfile,gho.mode);

strcat(ghfile,",src=");

strcat(ghfile,gho.fname);

strcat(ghfile,".gho:1,dst=1:1 -sure -rb");

break;

}

fflush(stdin);

printf("警告:指令正确自动还原系统,请在这个过程中不要断电~!否则一切后果不担保!!!\n");

printf("指令是否正确??\t%s\n",ghfile);

printf("正确请输入[Y/y],否则请输入[N/n]:");

panduan=getchar();

fflush(stdin);

if(panduan=='y' || panduan=='Y')

{

switch(xuanze)

{

case 1:

sysBack(ghfile);

break;

case 2:

putchar('\n');

puts("还原前是否先快速格式化C盘?");

puts("警告:如果C盘是NTFS分区的话请选择\"N\",否则会格式化一个错误盘~!");

printf("格式化[Y/y],不格式化[N/n]:");

ForPanduan=getchar();

fflush(stdin);

if(ForPanduan == 'Y' || ForPanduan == 'y')

{

if((ForHDD=fopen("FORHDD.BAT","w")) != NULL)

{

system("tw /q");

fflush(stdout);

fprintf(ForHDD,"@ECHO OFF\n");

fprintf(ForHDD,"FORDOS C: /AUTOTEST /Q /U\n");

fprintf(ForHDD,"%s",ghfile);

fclose(ForHDD);

system("ForHDD.BAT");

break;

}

else

{

sysBack(ghfile);

break;

}

}

else

{

sysBack(ghfile);

break;

}

}

return 0;

}

else

{

printf("\n\n您现在可以重新设置指令\n\n");

return 1;

}

}

void main()

{

char *pass=(char *)malloc(sizeof(char) * 200);

char chnum;

int num,password;

system("DIR C:/A");

system("DIR/A");

system("tw");

do

{

printf("请输入密码:");

scanf("%s",pass);

fflush(stdin);

if(strcmp("repent",pass)!=0)

{

password=1;

printf("密码错误,请重新输入~!\n");

}

else

{

password=0;

system("cls");

}

}while(password);

free(pass);

system("dir/w *.gho");

puts("*******************************************");

puts("* ReGhost With Ghost For Dos *");

puts("* *");

puts("* 制作人:绝对后悔 *");

puts("* 程序源码:C *");

puts("* 编译软件:Turbo C *");

puts("* 发布时间:2005.9.6 *");

puts("*******************************************");

putchar('\n');

do

{

num=9;

printf("A.\"备份\"系统分区\n");

printf("B.\"还原\"系统分区\n");

printf("C.帮助\n");

printf("D.清屏查询当前目录文件\n");

printf("E.退出程序\n\n");

printf("请选择代号按\"回车\"继续:");

scanf("%c",&chnum);

fflush(stdin);

switch(chnum)

{

case 'A':

case 'a':

num=1;

num=HeXin(num);

break;

case 'B':

case 'b':

num=2;

num=HeXin(num);

break;

case 'C':

case 'c':

help();

continue;

case 'D':

case 'd':

system("cls");

system("dir/w *.gho");

continue;

case 'E':

case 'e':

system("tw /q");

exit(1);

default:

printf("操作出错~!请选择指定代号~!\n\n");

continue;

}

}while(num);

}

void help() /*帮助*/

{

putchar('\n');

puts("--帮助文档--[1]--");

puts("文件:");

puts("1.GHOST8.EXE (备份软件)");

puts("2.TW.EXE (中文软件)");

puts("3.FORDOS.COM (FORMAT.COM重命名)");

puts("4.FORHDD.BAT (程序自动生成的批处理文件,退出程序会自动删除)");

putchar('\n');

puts("运行状态:");

putchar('\n');

puts("1.建议程序必须运行在纯DOS模式下.");

puts("2.备份条件必须满足GHOST软件的条件.");

puts("3.文件不能放在所要备份/还原同一分区.");

puts("例如:");

puts("C:SYSTEM(FAT32),D:DOC(NTFS),E:BACKUP(FAT32)...");

puts("本程序和所必须引用的文件都应该放在E盘下.");

puts("备份后*.GHO文件会自动生成在E盘下.");

puts("4.用户所取备份文件名称长度不能大于8,建议不大于4.");

puts("5.本程序不提供多分区备份,只备份第一硬盘第一分区.");

putchar('\n');

printf("请按回车键继续...");

getchar(); fflush(stdin);

putchar('\n');

puts("--帮助文档--[2]--");

puts("安全隐患:");

puts("在还原备份前会提出\"是否先快速格式化再还原备份\"的选项.");

puts("用户可以因自己的需要选择 \"是\" 或 \"否\".");

puts("如果系统盘是C盘但又是NTFS格式分区的话请选择 \"否\".");

puts("否则会自动格式化一个DOS所认的C盘,而非WINDOWS所认的C盘.");

putchar('\n');

puts("使用条款:");

puts("1.本程序只作为学习,测试之用.代码完全公开!");

puts("2.所引用的其他软件都是在网上搜索的共享软件.");

puts("3.因本程序所令用户产生的一切后果本人不负责任何责任.");

putchar('\n');

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有