파일 시스템 지시자 바이트의 가치에 대응하는 파일 시스템의 이름을 보여주기 위하여 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];/* Data Buffer to read-Write the
Sector information */
clrscr();

dinfo.drive = 0x80; /* drive number for First
Hard Disk */
dinfo.head = 0; /* disk head number */
dinfo.track = 0; /* track number */
dinfo.sector = 1; /* sector number */
dinfo.nsectors = 1; /* sector count */
dinfo.buffer = dbuf; /* data buffer */

/* 디스크의 첫번째 분야를 읽으십시오 */

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': /* Hide First Partition in partition Table */
dbuf[450] = dbuf[450] +16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '2': /* Hide second Partition in partition Table */
dbuf[466] = dbuf[466]+16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '3': /* Hide third Partition in partition Table */
dbuf[482] = dbuf[482] +16;
result = _bios_disk(_DISK_WRITE, &dinfo);
break;

case '4': /* Hide Fourth Partition in partition Table */
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