Programme pour reconstituer le MBR de la protection:
Le codage du programme est comme suit:
/* Programme pour reconstituer la protection de MBR à partir du dossier de secours */
#include <bios.h>
#include <stdio.h>
int main(void)
{
struct diskinfo_t dinfo;
int result;
int count=0;
char filename[80]; /* Stocke le nom de fichier donné par User*/
static char dbuf[512]; /*Amortisseur de données de 512 bytes
*/
FILE *fp;
/* Obliger l'utilisateur à entrer pour le chemin de dossier de secours de MBR */
printf("\n Entrer dans le nom de fichier et le chemin du dossier de secours de MBR \n ");
gets(filename);
if((fp=fopen(filename,"rb"))==NULL)
{
printf("N'a pas pu ouvrir le dossier de secours, n'appuie sur aucune touche pour sortir...");
getch();
exit(1);
}
/* Les données de MBR devraient être des 512 bytes exacts */
while(count<512)
{
fscanf(fp,"%c",&dbuf[count]);
count++;
}
fclose(fp);
printf("Essayer d'écrire à la commande de disque dur :\n");
dinfo.drive = 0x80; /* nombre d'entraînement pour le premier disque dur */
dinfo.head = 0; /* nombre principal de disque */
dinfo.track = 0; /*nombre de voie*/
dinfo.sector = 1; /* nombre de secteur */
dinfo.nsectors = 1; /* compte de secteur */
dinfo.buffer = dbuf; /*amortisseur de données */
result = _bios_disk(_DISK_WRITE, &dinfo);
if ((result & 0xff00) == 0)
{
printf("Reconstitution de la protection de MBR au secteur de disque : réussi.\n");
}
else
printf("Ne peut pas écrire sur la commande de disque dur, statut =
0x%02x\n", result);
return 0;
}
|