ファイルシステムの表示器バイトの価値に対応するファイルシステムの名前を示すためにMBRのshowtype ()機能からその仕切りの仕切りのテーブルの記入項目を使用して仕切りを隠すプログラム

Files Recovery Software
連絡先の詳細 顧客サポート ダウンロードのデモ 製品  

 
 

仕切りを隠す執筆プログラム

次に与えられるプログラムがMBRの仕切りのテーブルからその仕切りの仕切りの記入項目を使用して仕切りを隠すのに使用されている。 延長容積に他の論理的な仕切りを隠したいと思えば延長MBRsにアクセスするべきである。

プログラムのコーディングは次に与えられてしまった:

/*MBRからその仕切りの仕切りのテーブルの記入項目を使用して仕切りを隠すプログラム*/

#include <bios.h>
#include <stdio.h>

int main(void)
{
struct diskinfo_t dinfo;
int result, tohide;
int i;
static char dbuf[512];/*読み書きへのデータバッファセクター情報 */
clrscr();

dinfo.drive = 0x80; /* 最初ハードディスクのためのドライブ数 */
dinfo.head = 0; /* ディスクヘッド数 */
dinfo.track = 0; /* トラック数 */
dinfo.sector = 1; /* セクター数 */
dinfo.nsectors = 1; /* セクター計算 */
dinfo.buffer = dbuf; /* データバッファ */

/* ディスクの最初のセクターを読みなさい */

result = _bios_disk(_DISK_READ, &dinfo);

if ((result & 0xff00) == 0)
{
printf("The Partition Codes of Four Partition Entries are,
0x%02x, 0x%02x, 0x%02x And 0x%02x.\n",
dbuf[450] & 0xff, dbuf[466] & 0xff,
dbuf[482] & 0xff, dbuf[498] & 0xff);
textcolor(15);
gotoxy(5,5);cprintf("Partition Entry in MBR is as
follows:");
gotoxy(10,7);cprintf("1. "); showtype(dbuf[450] & 0xff);
gotoxy(10,8);cprintf("2. "); showtype(dbuf[466] & 0xff);
gotoxy(10,9);cprintf("3. "); showtype(dbuf[482] & 0xff);
gotoxy(10,10);cprintf("4. "); showtype(dbuf[498] & 0xff);

/*ユーザーを仕切りを隠すために入るために得なさい*/

gotoxy(1,15);
printf("Enter The partition no. you want to hide,
Or Press any other key to Exit... ");

tohide=getche();

switch(tohide)
{
case '1': /* 仕切りのテーブルに最初仕切りを隠しなさい */
dbuf[450] = dbuf[450] +16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '2': /* 仕切りのテーブルに第2仕切りを隠しなさい */
dbuf[466] = dbuf[466]+16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '3': /* 仕切りのテーブルに第3仕切りを隠しなさい */
dbuf[482] = dbuf[482] +16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '4': /* 仕切りのテーブルに第4仕切りを隠しなさい */
dbuf[498] = dbuf[498]+16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

default:
exit(0);

}

if ((result & 0xff00) == 0)
{
printf("\n\nThe New Partition Codes of Four Partition
Entries are, 0x%02x, 0x%02x, 0x%02x And 0x%02x.\n",
dbuf[450] & 0xff, dbuf[466] & 0xff,
dbuf[482] & 0xff, dbuf[498] & 0xff);
getch();
}
else
{
printf("Cannot Change the Byte, status = 0x%02x\n",
result);
getch();
}
}
return 0;
}

コーディングのコメント:

プログラムはMBRの仕切りのテーブルのすべての4つの仕切りの記入項目のファイルシステムの表示器バイトを読む。 機能showtypeが()ファイルシステムの表示器バイトの対応する価値のためのファイルシステムの名前を示すのに使用されている。

ユーザーはスクリーンに表示されるメニューから隠れるために仕切りを選び、それから16はその仕切りのファイルシステムの表示器バイトの価値に(0x10)それを隠すために加えられる。

機能showtypeのコーディングは()次の通りある:

/*ファイルシステムの表示器バイトの価値に対応するファイルシステムの名前を示す機能 */

showtype(i)
{
switch (i)
{

case 0x00 :cprintf("Empty"); break;
case 0x01 :cprintf("DOS 12-bit FAT"); break;
case 0x02 :cprintf("XENIX root"); break;
case 0x03 :cprintf("XENIX usr"); break;
case 0x04 :cprintf("DOS 16-bit <32M"); break;
case 0x05 :cprintf("Extended"); break;
case 0x06 :cprintf("DOS 16-bit >=32M"); break;
case 0x07 :cprintf("OS/2 HPFS"); break;
case 0x08 :cprintf("AIX"); break;
case 0x09 :cprintf("AIX bootable"); break;
case 0xa :cprintf("OS/2 Boot Manag"); break;
case 0xb :cprintf("Win95/98/ME FAT32"); break;
case 0xc :cprintf("Win95/98/ME FAT32 (LBA)"); break;
case 0xd :cprintf("Win95 FAT16"); break;
case 0xe :cprintf("Win95 FAT16 (LBA)"); break;
case 0xf :cprintf("Win95 Extended"); break;
case 0x11 :cprintf("Hidden FAT-12");break;
case 0x12 :cprintf("Compaq Diagnostics");break;
case 0x14 :cprintf("Hidden FAT-16 (<32)");break;
case 0x15 :cprintf("Hidden Extended");break;
case 0x16 :cprintf("Hidden FAT-16");break;
case 0x17 :cprintf("NTFS"); break;
case 0x40 :cprintf("Venix 80286"); break;
case 0x51 :cprintf("Novell?"); break;
case 0x52 :cprintf("Microport"); break;
case 0x63 :cprintf("GNU HURD"); break;
case 0x64 :
case 0x65 :cprintf("Novell Netware"); break;
case 0x75 :cprintf("PC/IX"); break;
case 0x80 :cprintf("Old MINIX"); break;
case 0x81 :cprintf("Linux/MINIX"); break;
case 0x82 :cprintf("Linux swap"); break;
case 0x83 :cprintf("Linux native"); break;
case 0x85 :cprintf("Linux Extended"); break;
case 0x93 :cprintf("Amoeba"); break;
case 0x94 :cprintf("Amoeba BBT"); break;
case 0xa5 :cprintf("BSD/386"); break;
case 0xa6 :cprintf("OpenBSD"); break;
case 0xa7 :cprintf("NEXTSTEP"); break;
case 0xb7 :cprintf("BSDI fs"); break;
case 0xb8 :cprintf("BSDI swap"); break;
case 0xc7 :cprintf("Syrinx"); break;
case 0xdb :cprintf("CP/M"); break;
case 0xe1 :cprintf("DOS access"); break;
case 0xe3 :cprintf("DOS R/O"); break;
case 0xf2 :cprintf("DOS secondary"); break;
case 0xff :cprintf("BBT"); break;

default :cprintf("UNKOWN");
}

return 0;
}


Previous page

page 1 | 2 | 3 | 4 | 5 | 6

Next page
 
 
データ回復図書
 
章1 データ回復の概観
章2 ハードディスクの導入
章3 ディスクおよびosへの論理的なアプローチ
章4 ナンバーシステム
章5 cのプログラミングの導入
章6 コンピュータ基本原則への紹介
章7 必要なdosは命じる
章8 ディスクBIOSは作用し、cとの処理を中断する
章9 大きいハードディスクの処理
章10 買収されたフロッピィからのデータ回復
章11 バックアップの作成
章12 プログラミングを用いる読み、変更MBR
章13 プログラミングを用いる読み、変更DBR
章14 「未加工ファイル」回復のためのプログラミング
章15 データワイパーのためのプログラミング
章16 ディスクのためのより多くの実用性の開発
付録 データ回復言葉の語集
 
 
Pro Data Doctor

製品

連絡先の詳細

顧客サポート

ダウンロードのデモ

契約条件

 
Pro Data Doctor