如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
机器狗源码(C语言的)//Test.cpp:定义控制台应用程序的入口点。//#include"stdafx.h"//==============================================================================#include<pshpack1.h>typedefstruct_PARTITION_ENTRY{UCHARactive;//能否启动标志UCHARStartHead;//该分区起始磁头号UCHARStartSector;//起始柱面号高2位:6位起始扇区号UCHARStartCylinder;//起始柱面号低8位UCHARPartitionType;//分区类型UCHAREndHead;//该分区终止磁头号UCHAREndSector;//终止柱面号高2位:6位终止扇区号UCHAREndCylinder;//终止柱面号低8位ULONGStartLBA;//起始扇区号ULONGTotalSector;//分区尺寸(总扇区数)}PARTITION_ENTRY,*PPARTITION_ENTRY;//==============================================================================typedefstruct_MBR_SECTOR{UCHARBootCode[446];PARTITION_ENTRYPartition[4];USHORTSignature;}MBR_SECTOR,*PMBR_SECTOR;//==============================================================================typedefstruct_BBR_SECTOR{USHORTJmpCode;//2字节跳转指令,跳转到引导代码UCHARNopCode;//1字节nop指令,填充用,保证跳转指令长3个字节UCHAROEMName[8];//8字节的OEMName//下面开始为:BPB(BIOSParameterBlock)USHORTBytesPerSector;//每个扇区的字节数(512102420484096)UCHARSectorsPerCluster;//每个簇的扇区数(1248163264128)两者相乘不能超过32K(簇最大大小)USHORTReservedSectors;//从卷的第一个扇区开始的保留扇区数目,该值不能为0,对于FAT12/FAT16,该值通常为1,对于FAT32,典型值为32UCHARNumberOfFATs;//卷上FAT数据结构的数目,该值通常应为2,[NTFS不使用NumberOfFATs字段,必须为0]USHORTRootEntries;//对于FAT12/FAT16,该值表示32字节目录项的数目,对于FAT32,该值必须为0;[NTFS不使用]USHORTNumberOfSectors16;//该卷上的扇区总数,该字段可以为0,如果该字段为0,则NumberOfSectors32不能为0;对于FAT32,该字段必须为0[FAT32/NTFS不使用该字段]UCHARMediaDescriptor;//介质类型USHORTSectorsPerFAT16;//该字段标识一个FAT结构占有的扇区数(FAT12/FAT16),对于FAT32卷,该字段必须为0;[FAT32/NTFS不使用该字段]USHORTSectorsPerTrack;//用于INT0x13中断的每个磁道的扇区数USHORTHeadsPerCylinder;//用于INT0x13中断的每个柱面的磁头数ULONGHiddenSectors;//包含该FAT卷的分区之前的隐藏扇区数ULONGNumberOfSectors32;//该字段包含该卷上的所有扇区数目,对于FAT32,该字段不为0;FAT12/FAT16可根据实际大小是否超过65536个扇区数决定是否采用该字段;[NTFS不使用该字段]//下面开始为:EBPB(ExtendedBIOSParameterBlock)ULONGSectorsPerFAT32;//对于FAT32,该字段包含一个FAT的大小,而SectorsPerFAT16字段必须为0;}BBR_SECTOR,*PBBR_SECTOR;#include<poppack.h>#definePARTITION_TYPE_NTFS0x07#definePARTITION_TYPE_FAT320x0B#definePA