📄 dos.c
字号:
/* * The Sleuth Kit * * Brian Carrier [carrier <at> sleuthkit [dot] org] * Copyright (c) 2006-2008 Brian Carrier, Basis Technology. All rights reserved * Copyright (c) 2003-2005 Brian Carrier. All rights reserved * * This software is distributed under the Common Public License 1.0 *//** \file dos.c * Contains the internal functions to process DOS Partition tables */#include "tsk_vs_i.h"#include "tsk_dos.h"/* Check the extended partition flags */#define dos_is_ext(x) \ ((((x) == 0x05) || ((x) == 0x0F) || ((x) == 0x85)) ? 1 : 0)/* * dos_get_desc * * Return a buffer with a string description of the partition type * * From: http://www.win.tue.nl/~aeb/partitions/partition_types-1.html */static char *dos_get_desc(uint8_t ptype){#define DESC_LEN 64 char *str = tsk_malloc(DESC_LEN); if (str == NULL) return ""; switch (ptype) { case 0x00: snprintf(str, DESC_LEN, "Empty (0x00)"); break; case 0x01: snprintf(str, DESC_LEN, "DOS FAT12 (0x01)"); break; case 0x04: case 0x06: snprintf(str, DESC_LEN, "DOS FAT16 (0x%.2X)", ptype); break; case 0x05: snprintf(str, DESC_LEN, "DOS Extended (0x05)"); break; case 0x07: snprintf(str, DESC_LEN, "NTFS (0x07)"); break; case 0x08: snprintf(str, DESC_LEN, "AIX Boot (0x08)"); break; case 0x09: snprintf(str, DESC_LEN, "AIX Data (0x09)"); break; case 0x0b: case 0x0c: snprintf(str, DESC_LEN, "Win95 FAT32 (0x%.2X)", ptype); break; case 0x0e: snprintf(str, DESC_LEN, "Win95 FAT16 (0x0E)"); break; case 0x0f: snprintf(str, DESC_LEN, "Win95 Extended (0x0F)"); break; case 0x11: snprintf(str, DESC_LEN, "DOS FAT12 Hidden (0x11)"); break; case 0x12: snprintf(str, DESC_LEN, "Hibernation (0x12)"); break; case 0x14: case 0x16: snprintf(str, DESC_LEN, "DOS FAT16 Hidden (0x%.2X)", ptype); break; case 0x1b: case 0x1c: snprintf(str, DESC_LEN, "Win95 FAT32 Hidden (0x%.2X)", ptype); break; case 0x1e: snprintf(str, DESC_LEN, "Win95 FAT16 Hidden (0x1E)"); break; case 0x42: snprintf(str, DESC_LEN, "Win LVM / Secure FS (0x42)"); break; case 0x44: snprintf(str, DESC_LEN, "GoBack (0x44)"); break; case 0x50: case 0x51: case 0x53: case 0x54: snprintf(str, DESC_LEN, "OnTrack Disk Manager (0x%.2X)", ptype); break; case 0x55: snprintf(str, DESC_LEN, "EZ-Drive (0x55)"); break; return "EZ-Drive"; case 0x57: snprintf(str, DESC_LEN, "DrivePro (0x57)"); break; case 0x61: snprintf(str, DESC_LEN, "SpeedStor (0x61)"); break; case 0x63: snprintf(str, DESC_LEN, "UNIX System V (0x63)"); break; case 0x64: case 0x65: case 0x66: case 0x67: case 0x68: case 0x69: snprintf(str, DESC_LEN, "Novell Netware (0x%.2X)", ptype); break; case 0x82: snprintf(str, DESC_LEN, "Linux Swap / Solaris x86 (0x82)"); break; case 0x83: snprintf(str, DESC_LEN, "Linux (0x83)"); break; case 0x84: snprintf(str, DESC_LEN, "Hibernation (0x84)"); break; case 0x85: snprintf(str, DESC_LEN, "Linux Extended (0x85)"); break; case 0x86: snprintf(str, DESC_LEN, "NTFS Volume Set (0x86)"); break; case 0x8e: snprintf(str, DESC_LEN, "Linux Logical Volume Manager (0x8e)"); break; case 0x93: snprintf(str, DESC_LEN, "Linux Hidden (0x93)"); break; case 0x9f: snprintf(str, DESC_LEN, "BSD/OS (0x9F)"); break; case 0xa0: case 0xa1: snprintf(str, DESC_LEN, "Hibernation (0x%.2X)", ptype); break; case 0xa5: snprintf(str, DESC_LEN, "FreeBSD (0xA5)"); break; case 0xa6: snprintf(str, DESC_LEN, "OpenBSD (0xA6)"); break; case 0xa7: snprintf(str, DESC_LEN, "NextSTEP (0xA7)"); break; case 0xa8: snprintf(str, DESC_LEN, "Mac OS X (0xA8)"); break; case 0xa9: snprintf(str, DESC_LEN, "NetBSD (0xA9)"); break; case 0xab: snprintf(str, DESC_LEN, "Mac OS X (0xAB)"); break; case 0xb7: snprintf(str, DESC_LEN, "BSDI (0xB7)"); break; case 0xb8: snprintf(str, DESC_LEN, "BSDI Swap (0xB8)"); break; case 0xbe: snprintf(str, DESC_LEN, "Solaris 8 Boot (0xBE)"); break; case 0xc2: snprintf(str, DESC_LEN, "Hidden Linux (0xC2)"); break; case 0xc3: snprintf(str, DESC_LEN, "Hidden Linux Swap (0xC3)"); break; case 0xc6: case 0xc7: snprintf(str, DESC_LEN, "Corrupted Windows NT Volume / Stripe Set (0x%.2X)", ptype); break; case 0xee: snprintf(str, DESC_LEN, "GPT Safety Partition (0xEE)"); break; case 0xfb: snprintf(str, DESC_LEN, "VMWare File System (0xFB)"); break; case 0xfc: snprintf(str, DESC_LEN, "VMWare Swap (0xFC)"); break; return "VMware Swap"; case 0xfd: snprintf(str, DESC_LEN, "Linux RAID (0xFD)"); break; case 0x02: snprintf(str, DESC_LEN, "XENIX root (0x02)"); break; case 0x03: snprintf(str, DESC_LEN, "XENIX /usr (0x03)"); break; case 0x0a: snprintf(str, DESC_LEN, "OS/2 Boot Manager (0x0a)"); break; /* case 0x0a: snprintf(str, DESC_LEN, "Coherent swap (0x0a)"); break; case 0x0a: snprintf(str, DESC_LEN, "OPUS (0x0a)"); break; */ case 0x10: snprintf(str, DESC_LEN, "OPUS (0x10)"); break; case 0x17: snprintf(str, DESC_LEN, "Hidden IFS/HPFS (0x17)"); break; case 0x18: snprintf(str, DESC_LEN, "AST SmartSleep (0x18)"); break; case 0x19: case 0x20: case 0x22: case 0x7e: case 0x7f: case 0xed: case 0xf7: snprintf(str, DESC_LEN, "Unused (0x%.2X)", ptype); break; case 0x21: case 0x23: case 0x26: case 0x31: case 0x33: case 0x34: case 0x36: case 0x71: case 0x73: case 0x76: case 0xf3: snprintf(str, DESC_LEN, "Reserved (0x%.2X)", ptype); break; case 0x24: snprintf(str, DESC_LEN, "NEC DOS 3.x (0x24)"); break; case 0x32: snprintf(str, DESC_LEN, "NOS (0x32)"); break; case 0x35: snprintf(str, DESC_LEN, "JFS on OS/2 or eCS (0x35)"); break; case 0x38: snprintf(str, DESC_LEN, "THEOS v3.2 2gb (0x38)"); break; /* case 0x39: snprintf(str, DESC_LEN, "Plan 9 (0x39)"); break; */ case 0x39: snprintf(str, DESC_LEN, "THEOS v4 Spanned (0x39)"); break; case 0x3a: snprintf(str, DESC_LEN, "THEOS v4 4gb (0x3a)"); break; case 0x3b: snprintf(str, DESC_LEN, "THEOS v4 Extended (0x3b)"); break; case 0x3c: snprintf(str, DESC_LEN, "PartitionMagic Recovery (0x3c)"); break; case 0x3d: snprintf(str, DESC_LEN, "Hidden NetWare (0x3d)"); break; case 0x40: snprintf(str, DESC_LEN, "Venix 80286 (0x40)"); break; case 0x41: snprintf(str, DESC_LEN, "Linux/MINIX (Sharing Disk with DR-DOS) (0x41)"); break; /* case 0x41: snprintf(str, DESC_LEN, "Personal RISC Boot (0x41)"); break; case 0x41: snprintf(str, DESC_LEN, "PPC PReP Boot (0x41)"); break; */ case 0x43: snprintf(str, DESC_LEN, "Linux Native (Sharing Disk with DR-DOS) (0x43)"); break; case 0x45: snprintf(str, DESC_LEN, "Boot-US Boot Manager (0x45)"); break; /* case 0x45: snprintf(str, DESC_LEN, "Priam (0x45)"); break; case 0x45: snprintf(str, DESC_LEN, "EUMEL/Elan (0x45)"); break; */ case 0x46: snprintf(str, DESC_LEN, "EUMEL/Elan (0x46)"); break; case 0x47: snprintf(str, DESC_LEN, "EUMEL/Elan (0x47)"); break; case 0x48: snprintf(str, DESC_LEN, "EUMEL/Elan (0x48)"); break; case 0x4a: snprintf(str, DESC_LEN, "Mark Aitchison's ALFS/THIN Lightweight Filesystem (0x4a)"); break; /*case 0x4a: snprintf(str, DESC_LEN, "AdaOS Aquila (0x4a)"); break; */ case 0x4c: snprintf(str, DESC_LEN, "Oberon (0x4c)"); break; case 0x4d: case 0x4e: case 0x4f: snprintf(str, DESC_LEN, "QNX 4.x (0x%.2X)", ptype); break; /*case 0x4f: snprintf(str, DESC_LEN, "Oberon (0x4f)"); break; */ /*case 0x52: snprintf(str, DESC_LEN, "CP/M (0x52)"); break; */ case 0x52: snprintf(str, DESC_LEN, "Microport SysV/AT (0x52)"); break; /*case 0x56: snprintf(str, DESC_LEN, "Golden Bow VFeature Partitioned Volume. (0x56)"); break; */ /*case 0x56: snprintf(str, DESC_LEN, "DM Converted to EZ-BIOS (0x56)"); break; */ case 0x56:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -