⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dos.c

📁 linux下开发的针对所有磁盘的数据恢复的源码
💻 C
📖 第 1 页 / 共 3 页
字号:
/* * 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 + -