资源描述:
《NTFS分区的引导源码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、NTFS分区的引导源码·windows2000·操作系统·安全 NTFS文件系统有着非常优秀的特性,其安全性、可靠性都远胜于我们常用的FAT文件系统,但是微软公司出于商业目的没有公布它的规范,使得这种优秀的文件系统只能在WindowsNT架构的操作系统中使用。 不过先辈们唱得好:“没有枪没有炮,敌人给我们造!”。不管微软再怎么保密,它自己总要使用NTFS文件系统。那我们就通过分析它的代码来研究NTFS文件系统的规范呐。下面就列出小弟在仔细分析之后制做的Windows2000build2195版格式化的NTFS分区的引导记录的源代码,以此与各位同好共勉。
2、 本代码在MASM6.11下编译通过。其中与分区结构相关的数据仅适用于在下自己分的分区,各位引用时请自行代入正确的值。 .486 TitleNTFS$BootofWindows2000build2195 CodeSEGMENTBYTEPUBLICUSE16'CODE' ASSUMECS:Code,DS:Code NTFSPROCFAR START:JMPSHORTLoader DB90H PartitionIDDB'NTFS' BytePerSectorDW512 SectorPerClusterDB1 SectorNumWan
3、tedDW0 SectorWantedDD0 SupportExtendInt13FlagDB0 StorageMediaDB0F8H DB0,0 SectorPerTrackDW3FH HeadsDW0FFH HiddenSectorDD3FH CHSMaxSectorNumDD0 CurrentDiskDB81H DB0,8,0 SectorsInPartitionDD3E81FFH DD0 MFTPositionDD0C5A70H DD0 MFTMirrPositionDD1FCD0AH DD0 ClusterPerFRSDD2
4、DB08H,0,0,0,0F6H,79H DB58H,5CH,0BBH,58H,5CH,0F4H DB0,0,0,0 Loader:CLI;Disableinterrupts XORAX,AX MOVSS,AX MOVSP,7C00H;Initalizestack STI;Enableinterrupts MOVAX,7C0H MOVDS,AX CALLGetCHSMaxSectorNum MOVAX,0D00H MOVES,AX XORBX,BX MOVBYTEPTRDS:[SectorNumWanted],10H CALLReadSe
5、ctor PUSH0D00H PUSH26AH RETF NTFSENDP ;----------------------------------------------------------------------------- GetCHSMaxSectorNumPROCNEAR MOVDL,DS:[CurrentDisk] MOVAH,8 INT13H JNCLost MOVCX,0FFFFH MOVDH,CL Lost:MOVZXEAX,DH INCAX MOVZXEDX,CL ANDDL,3FH MULDX XCHGCL
6、,CH SHRCH,6 INCCX MOVZXECX,CX MULECX MOVDS:CHSMaxSectorNum,EAX RET GetCHSMaxSectorNumENDP ;----------------------------------------------------------------------------- IsSupportExtendInt13PROCNEAR MOVAH,41H MOVBX,55AAH MOVDL,DS:CurrentDisk INT13H;Issupportextendint13h JCSHO
7、RTNotSupport;JumpifcarrySet CMPBX,0AA55H JNESHORTNotSupport;Jumpifnotequal TESTCL,1 JZSHORTNotSupport;Jumpifzero INCBYTEPTRDS:SupportExtendInt13Flag NotSupport:RET IsSupportExtendInt13ENDP ;------------------------------------------------------------------