关于作者

姓名:

性别:男

出生日期:--

地区:

联系电话:

QQ:--

婚否:保密
用户名:disksos
笔名:disksos
地区:
行业:其他

日历  

快速登录

+ 用户名:
+ 密 码:

在线留言



公司链接

访问统计:
文章个数:9
评论个数:17
留言条数:0




Powered by BlogDriver 2.1

disksos的博客

 

欢迎访问disksos的博客

文章

简单三步走堵死SQLServer注入漏洞

SQL注入是什么

许多网站程序在编写时,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码(一般是在浏览器地址栏进行,通过正常的www端口访问),根据程序返回的结果,获得某些想得知的数据,这就是所谓的SQL Injection,即SQL注入。

网站的恶梦——SQL注入

SQL注入通过网页对网站数据库进行修改。它能够直接在数据库中添加具有管理员权限的用户,从而最终获得系统管理员权限。黑客可以利用获得的管理员权限任意获得网站上的文件或者在网页上加挂木马和各种恶意程序,对网站和访问该网站的网友都带来巨大危害。

防御SQL注入有妙法

第一步:很多新手从网上下载SQL通用防注入系统的程序,在需要防范注入的页面头部用来防止别人进行手动注入测试。

可是如果通过SQL注入分析器就可轻松跳过防注入系统并自动分析其注入点。然后只需要几分钟,你的管理员账号及密码就会被分析出来。

第二步:对于注入分析器的防范,笔者通过实验,发现了一种简单有效的防范方法。首先我们要知道SQL注入分析器是如何工作的。在操作过程中,发现软件并不是冲着“admin”管理员账号去的,而是冲着权限(如flag=1)去的。这样一来,无论你的管理员账号怎么变都无法逃过检测。

第三步:既然无法逃过检测,那我们就做两个账号,一个是普通的管理员账号,一个是防止注入的账号,为什么这么说呢?笔者想,如果找一个权限最大的账号制造假象,吸引软件的检测,而这个账号里的内容是大于千字以上的中文字符,就会迫使软件对这个账号进行分析的时候进入全负荷状态甚至资源耗尽而死机。下面我们就来修改数据库吧。

1.对表结构进行修改。将管理员的账号字段的数据类型进行修改,文本型改成最大字段255(其实也够了,如果还想做得再大点,可以选择备注型),密码的字段也进行相同设置。

2.对表进行修改。设置管理员权限的账号放在ID1,并输入大量中文字符(最好大于100个字)。

3.把真正的管理员密码放在ID2后的任何一个位置(如放在ID549上)。

我们通过上面的三步完成了对数据库的修改。

这时是不是修改结束了呢?其实不然,要明白你做的ID1账号其实也是真正有权限的账号,现在计算机处理速度那么快,要是遇上个一定要将它算出来的软件,这也是不安全的。我想这时大多数人已经想到了办法,对,只要在管理员登录的页面文件中写入字符限制就行了!就算对方使用这个有上千字符的账号密码也会被挡住的,而真正的密码则可以不受限制。

- 作者: disksos 2006年02月17日, 星期五 12:42  回复(0) |  引用(0) 加入博采

了解数据恢复

一、什么是数据恢复  
    所谓数据恢复是指由于各种原因导致数据损失时把保留在介质上的数据重新恢复的过程。 即使数据被删除或硬盘出现故障,只要在介质没有严重受损的情况下,数据就有可能被完好无损地恢复。格式化或误删除引起的数据损失的情况下,大部分数据仍未损坏,用软件重新恢复连接环节的话,可以重读数据如果硬 盘因硬件损坏而无法访问时,更换发生故障的零件,即可恢复数据。在介质严重受损或数据被覆盖情况,数据将无法恢复。   

二、数据恢复的简单方法
    有些简单的数据修复故障,用户是可以自已设法处理不必急于送修,而且学会的话其功力等于个人工作室的程度:
    1. 如果怀疑硬盘有故障,先检查信号线和电源是否插好,或将硬盘挂接到另一台正常机器上,用BIOS检测,如果还是无法检测到硬盘,就是硬件故障。
    2. 如果怀疑分区损坏,可用Win98的Fdisk命令观察,如无任何分区显示即表示已被破坏。
    3. 如果怀疑硬盘电路板有故障, 可以找一个相同型号的好硬盘更换电路板。
    4. 如果是硬盘分区损坏、误格式化或误删除,可以将该硬盘挂接到另一台正常机器上作为第二个硬盘,用Easyrecovery或 Finaldata 数据恢复软件抢救数据。
    注意:以上动作简单的方法,所以如试过还是无效,就表示受损严重,不可再由个人处理。切记您自已要小心,不要误操作,如有受损与本公司无关。  

三、何谓洁净间?
    在数据修复过程中,排除硬盘物理故障的一个必不可少的环境就是洁净间。洁净间一般分为100级、1000级、10000级、100000级几个等级,每一等级都对每立方米空气中大于一定直径灰尘的数量有严格的规定。 在硬盘生产过程中,盘片只能暴露在低于100级的洁净间中,俗称“10级洁净间”,基本为无尘环境,这样才能保证硬盘长期稳定运行; 而数据恢复是以备份出数据为前提,物理故障的硬盘是不会长期运行的, 所以其洁净间标准可适当降低,但如果等级低于1000级,就会影响修复效果。
    洁净度100级:大于等于0.5μm的尘粒数大于350粒/m3(0.35粒/L)到小于等于3500粒/m3(3.5粒/L);大于等于5μm的尘粒数为0。
    洁净度1000级:大于等于0.5μm的尘粒数大于3500粒/m3(3.5粒/L)到小于等于35000粒/m3(35粒/L);大于等于5μm的尘粒数小于等于300粒/m3(0.3粒/L)。
    洁净度10000级:大于等于0.5μm的尘粒数大于35000粒/m3(35粒/L)到小于等于350000粒/m3(350粒/L);大于等于5μm的尘粒数大于300粒/m3(0.3粒/L)到小于等于3000粒/m3(3粒/L)。

多方编辑收集:上海数据恢复 杭州数据恢复 raid数据恢复 数据恢复 杭州数据恢复 中国数据恢复联盟 感谢以上站点提供支持

- 作者: disksos 2006年01月6日, 星期五 10:41  回复(0) |  引用(0) 加入博采

起死回生 用Ghost修复无法格式化的U盘

 我的U盘是SIMPTECH
      牌子的,256兆,在反复尝试制作U盘启动盘的过程中,U盘莫明其妙地坏了,本来在dos下U盘已经可以启动DOS系统了,但后来却无法启动了。
        我进入WINDOWS
      XP系统,可以在“我的电脑”中看到U盘的盘符,点击左键,提示没有格式化,我击右键选“格式化”,无论快速格式化,还是常规格式化,都提示“无法格式化”。因为U盘是在制作启动盘的过程中坏的,我相信不是物理损坏,应该可以修好。
        上网下载了诸如mformat
      V1.0等修复U盘的修复工具,试了多次,没有效果。我又用启动盘加载U盘,想在DOS下用fdisk或DOS下的磁盘修复工具修复,但在dos下不认该U盘,我几乎要放弃了。
      一个偶然的机会,我在克隆系统时,选择克隆的源文件时,我看到了两个盘,第一个是我的硬盘,第二个竞是我的U盘。忽然想到网上曾有用Ghost修复硬盘的文章。我抱着试一试的心态,准备做一个小的ghost文件,恢复到U盘上。在windows
      下,把我的D:分区的文件移到其它分区,用Fat32格式格式化D:分区;重新启动系统到dos下,运行ghost,local→partition→to
      image做一个D:的镜像文件,我命名为d.GHO,因为D:盘没有文件,镜像文件瞬间做完。我再回到ghost的启动界面,local→partition→from
      image,选刚做的镜像文件d.GHO为源文件,恢复到U盘上(此时,千万看准,不要恢复到你的硬盘上的个个分区上,否则,你的那个分区中的文件会全部丢失),瞬间做完。
        项目管理部重新启动系统到windows系统,点击U盘的盘符,顺利打开;试着格式化,一切顺利,空间大小,仍是256兆;试着把其它盘的文件复制到U盘,成功!!!

编辑:数据恢复联盟 or 中国数据恢复中心

- 作者: disksos 2005年11月21日, 星期一 12:01  回复(1) |  引用(0) 加入博采

硬盘数据恢复实例全解 超长超详细
摘要:硬盘数据恢复实例全解 超长超详细 查看全文

- 作者: disksos 2005年11月21日, 星期一 11:59  回复(1) |  引用(0) 加入博采

识别常见Web应用安全漏洞 有效防止入侵

在Internet大众化及Web技术飞速演变的今天,在线安全所面临的挑战日益严峻。伴随着在线信息和服务的可用性的提升,以及基子Web的攻击和破坏的增长,安全风险达到了前所未有的高度。由于众多安全工作集中在网络本身上面,Web应用程序几乎被遗忘了。也许这是因为应用程序过去常常是在一台计算机上运行的独立程序,如果这台计算机安全的话,那么应用程序就是安全的。如今,情况大不一样了,Web应用程序在多种不同的机器上运行:客户端、Web服务器、数据库服务器和应用服务器。而且,因为他们一般可以让所有的人使用,所以这些应用程序成为了众多攻击活动的后台旁路。

    由于Web服务器提供了几种不同的方式将请求转发给应用服务器,并将修改过的或新的网页发回给最终用户,这使得非法闯入网络变得更加容易。

    而且,许多程序员不知道如何开发安全的应用程序。他们的经验也许是开发独立应用程序或Intranet Web应用程序,这些应用程序没有考虑到在安全缺陷被利用时可能会出现灾难性后果。

    其次,许多Web应用程序容易受到通过服务器、应用程序和内部已开发的代码进行的攻击。这些攻击行动直接通过了周边防火墙安全措施,因为端口80或443(SSL,安全套接字协议层)必须开放,以便让应用程序正常运行。Web应用程序攻击包括对应用程序本身的DoS(拒绝服务)攻击、改变网页内容以及盗走企业的关键信息或用户信息等。

    总之,Web应用攻击之所以与其他攻击不同,是因为它们很难被发现,而且可能来自任何在线用户,甚至是经过验证的用户。迄今为止,该方面尚未受到重视,因为企业用户主要使用防火墙和入侵检测解决方案来保护其网络的安全,而防火墙和入侵检测解决方案发现不了Web攻击行动。

    常见的Web应用安全漏洞

    下面将列出一系列通常会出现的安全漏洞,并且简单解释一下这些漏洞是如何产生的。

    已知弱点和错误配置

    已知弱点包括Web应用使用的操作系统和第三方应用程序中的所有程序错误或者可以被利用的漏洞。这个问题也涉及到错误配置,包含有不安全的默认设置或管理员没有进行安全配置的应用程序。一个很好的例子就是你的Web服务器被配置成可以让任何用户从系统上的任何目录路径通过,这样可能会导致泄露存储在Web服务器上的一些敏感信息,如口令、源代码或客户信息等。

    隐藏字段

    在许多应用中,隐藏的HTML格式字段被用来保存系统口令或商品价格。尽管其名称如此,但这些字段并不是很隐蔽的,任何在网页上执行“查看源代码”的人都能看见。许多Web应用允许恶意的用户修改HTML源文件中的这些字段,为他们提供了以极小成本或无需成本购买商品的机会。这些攻击行动之所以成功,是因为大多数应用没有对返回网页进行验证;相反,它们认为输入数据和输出数据是一样的。

    后门和调试漏洞

    开发人员常常建立一些后门并依靠调试来排除应用程序的故障。在开发过程中这样做可以,但这些安全漏洞经常被留在一些放在Internet上的最终应用中。一些常见的后门使用户不用口令就可以登录或者访问允许直接进行应用配置的特殊URL。

    跨站点脚本编写

    一般来说,跨站点编写脚本是将代码插入由另一个源发送的网页之中的过程。利用跨站点编写脚本的一种方式是通过HTML格式,将信息帖到公告牌上就是跨站点脚本编写的一个很好范例。恶意的用户会在公告牌上帖上包含有恶意的JavaScript代码的信息。当用户查看这个公告牌时,服务器就会发送HTML与这个恶意的用户代码一起显示。客户端的浏览器会执行该代码,因为它认为这是来自Web服务器的有效代码。

    参数篡改

    参数篡改包括操纵URL字符串,以检索用户以其他方式得不到的信息。访问Web应用的后端数据库是通过常常包含在URL中的SQL调用来进行的。恶意的用户可以操纵SQL代码,以便将来有可能检索一份包含所有用户、口令、信用卡号的清单或者储存在数据库中的任何其他数据。

    更改cookie

    更改cookie指的是修改存储在cookie中的数据。网站常常将一些包括用户ID、口令、帐号等的cookie存储到用户系统上。通过改变这些值,恶意的用户就可以访问不属于他们的帐户。攻击者也可以窃取用户的cookie并访问用户的帐户,而不必输入ID和口令或进行其他验证。

    输入信息控制

    输入信息检查包括能够通过控制由CGI脚本处理的HTML格式中的输入信息来运行系统命令。例如,使用CGI脚本向另一个用户发送信息的形式可以被攻击者控制来将服务器的口令文件邮寄给恶意的用户或者删除系统上的所有文件。

    缓冲区溢出

    缓冲区溢出是恶意的用户向服务器发送大量数据以使系统瘫痪的典型攻击手段。该系统包括存储这些数据的预置缓冲区。如果所收到的数据量大于缓冲区,则部分数据就会溢出到堆栈中。如果这些数据是代码,系统随后就会执行溢出到堆栈上的任何代码。Web应用缓冲区溢出攻击的典型例子也涉及到HTML文件。如果HTML文件上的一个字段中的数据足够的大,它就能创造一个缓冲器溢出条件。

    直接访问浏览

    直接访问浏览指直接访问应该需要验证的网页。没有正确配置的Web应用程序可以让恶意的用户直接访问包括有敏感信息的URL或者使提供收费网页的公司丧失收入。

    Web应用安全两步走

    Web应用攻击能够给企业的财产、资源和声誉造成重大破坏。虽然Web应用增加了企业受攻击的危险,但有许多方法可以帮助减轻这一危险。首先,必须教育开发人员了解安全编码方法。仅此项步骤就会消除大部分Web应用的安全问题。其次,坚持跟上所有厂商的最新安全补丁程序。如果不对已知的缺陷进行修补,和特洛伊木马一样,攻击者就能很容易地利用你的Web应用程序穿过防火墙访问Web服务器、数据库服务器、应用服务器等等。将这两项步骤结合起来,就会大大减少Web应用受到攻击的风险。同时管理人员必须采取严格措施,以保证不让任何东西从这些漏洞中溜过去。

- 作者: disksos 2005年10月8日, 星期六 11:17  回复(0) |  引用(0) 加入博采

数据恢复的基础知识
说到数据恢复,我们就不能不提到硬盘的数据结构、文件的存储原理,甚至操作系统的启动流程,这些是你在恢复硬盘数据时不得不利用的基本知识。
  硬盘数据结构
   新购买来一块硬盘需要将它分区、格式化,然后才能安装操作系统方可以使用。以Win9x/Me系列来说,我们一般要将硬盘分成主引导扇区(MBR)、操作系统引导扇区(DBR)、FAT(文件分配表)、DIR(目录区)和Data(数据区)等五部分(其中只有主引导扇区是唯一的,其它的随你的分区数的增加而增加)。
主引导扇区(MBR):
主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区DPT(
Disk Partition Table)。其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,
并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行。至于分区表,很多人
都知道,以80H或00H为开始标志,以55AAH为结束标志,共64字节,位于本扇区的最末端。值得一提的是,MBR是由分区程序(例如DOS的Fdisk.exe)产生。
 操作系统引导扇区
  DBR(Dos Boot Record)即操作系统引导扇区,通常位于硬盘的1磁道0柱面1扇区(这是对于DOS来说的,对于那些以多重引导方式启动的系统则位于相应的主分区/扩展分区的第一个扇区),是操作系统可直接访问的第一个扇区,它也包括一个引导程序和一个被称为BPB(BIOS Parameter Block)的本分区参数记录表。其实每个逻辑分区都有一个DBR,其参数视分区的大小、操作系统的类别而有所不同。引导程序的主要任务是判断本分区根目录前两个文件是否为操作系统的引导文件(例如MSDOS或者起源于MSDOS的Win9x/Me的IO.SYS和MSDOS.SYS)。如是,就把第一个文件读入内存,并把控制权交予该文件。BPB参数块记录着本分区的起始扇区、结束扇区、文件存储格式、硬盘介质描述符、根目录大小、FAT个数、分配单元(Allocation Unit,以前也称之为簇)的大小等重要参数。DBR由高级格式化程序产生(例如DOS的Format.com)。
   文件分配表
   FAT(File Allocation Table)即文件分配表,是DOS/Win9x系统的文件寻址系统,为了数据安全起见,FAT一般做两个,第二FAT为第一FAT的备份,FAT区紧接在DBR之后,其大小由本分区的大小及文件分配单元的大小决定。关于FAT的格式历来有很多选择,Microsoft的DOS及Windows采用我们所熟悉的FAT12、FAT16和FAT32格式,但除此以外并非没有其它格式的FAT,像Windows NT、OS/2、UNIX/Linux、Novell等都有自己的文件管理方式。
   目录区
   DIR是Directory即根目录区的简写,DIR紧接在第二FAT表之后,只有FAT还不能定位文件在磁盘中的位置,FAT还必须和DIR配合才能准确定位文件的位置。DIR记录着每个文件(目录)的起始单元(这是最重要的)、文件的属性等。定位文件位置时,操作系统根据DIR中的起始单元,结合FAT表就可以知道文件在磁盘的具体位置及大小了。在DIR区之后,才是真正意义上的数据存储区,即DATA区。
数据区
   DATA虽然占据了硬盘的绝大部分空间,但没有了前面的各部分,它对于我们来说,也只能是一些枯燥的二进制代码,没有任何意义。在这里有一点要说明的是,我们通常所说的格式化程序(指高级格式化,例如DOS下的Format程序),并没有把DATA区的数据清除,只是重写了FAT表而已,至于分区硬盘,也只是修改了MBR和DBR,绝大部分的DATA区的数据并没有被改变
   硬盘分区方式
   我们平时说到的分区概念,不外乎三种:主分区、扩展分区和逻辑分区。
主分区是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。在主分区中,不允许再建立其它逻辑磁盘。
   扩展分区的概念则比较复杂,也是造成分区和逻辑磁盘混淆的主要原因。由于硬盘仅仅为分区表保留了64个字节的存储空间,而每个分区的参数占据16个字节,故主引导扇区中总计可以存储4个分区的数据。操作系统只允许存储4个分区的数据,如果说逻辑磁盘就是分区,则系统最多只允许4个逻辑磁盘。对于具体的应用,4个逻辑磁盘往往不能满足实际需求。为了建立更多的逻辑磁盘供操作系统使用,系统引入了扩展分区的概念。
   所谓扩展分区,严格地讲它不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,这种指针结构将形成一个单向链表。这样在主引导扇区中除了主分区外,仅需要存储一个被称为扩展分区的分区数据,通过这个扩展分区的数据可以找到下一个分区(实际上也就是下一个逻辑磁盘)的起始位置,以此起始位置类推可以找到所有的分区。无论系统中建立多少个逻辑磁盘,在主引导扇区中通过一个扩展分区的参数就可以逐个找到每一个逻辑磁盘。
   需要特别注意的是,由于主分区之后的各个分区是通过一种单向链表的结构来实现链接的,因此,若单向链表发生问题,将导致逻辑磁盘的丢失。
数据存储原理
   既然要进行数据的恢复,当然数据的存储原理我们不能不提,在这之中,我们还要介绍一下数据的删除和硬盘的格式化相关问题……
   文件的读取
   操作系统从目录区中读取文件信息(包括文件名、后缀名、文件大小、修改日期和文件在数据区保存的第一个簇的簇号),我们这里假设第一个簇号是0023。
操作系统从0023簇读取相应的数据,然后再找到FAT的0023单元,如果内容是文件结束标志(FF),则表示文件结束,否则内容保存数据的下一个簇的簇号,这样重复下去直到遇到文件结束标志。
文件的写入
   当我们要保存文件时,操作系统首先在DIR区中找到空区写入文件名、大小和创建时间等相应信息,然后在Data区找到闲置空间将文件保存,并将Data区的第一个簇写入DIR区,其余的动作和上边的读取动作差不多。
   文件的删除
看了前面的文件的读取和写入,你可能没有往下边继续看的信心了,不过放心,Win9x的文件删除工作却是很简单的,简单到只在目录区做了一点小改动――将目录区的文件的第一个字符改成了E5就表示将改文件删除了。
    Fdisk和Format的一点小说明
    和文件的删除类似,利用Fdisk删除再建立分区和利用Format格式化逻辑磁盘(假设你格式化的时候并没有使用/U这个无条件格式化参数)都没有将数据从DATA区直接删除,前者只是改变了分区表,后者只是修改了FAT表,因此被误删除的分区和误格式化的硬盘完全有可能恢复

- 作者: disksos 2005年09月1日, 星期四 11:43  回复(0) |  引用(0) 加入博采

解读NTFS
来源:上海数据恢复 数据恢复 硬盘数据恢复 杭州数据恢复

NTFS是一个比FAT复杂的多的文件系统,我们一起努力来把它完整的解读出来
NTFS的引导扇区也是完成引导和定义分区参数,和FAT分区不同,FAT分区的BOOT记录正常,就显示分区没有错误,即使文件不正确,而NTFS分区的BOOT不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问。其BPB参数如下表所示。



字节偏移 长度 常用值 意义
0x0B 字 0x0002 每扇区字节数
0x0D 字节 0x08 每簇扇区数
0x0E 字 0x0000 保留扇区
0x10 3字节 0x000000 总为0
0x13 字 0x0000 NTFS未使用,为0
0x15 字节 0xF8 介质描述
0x16 字 0x0000 总为0
0x18 字 0x3F00 每磁盘扇区数
0x1A 字 0xFF00 磁头数
0x1C 双字 0x3F000000 隐含扇区
0x20 双字 0x00000000 NTFS未使用,为0
0x28 8字节 0x4AF57F0000000000 扇区总数
0x30 8字节 0x0400000000000000 $MFT的逻辑簇号
0x38 8字节 0x54FF070000000000 $MFTMirr的逻辑簇号
0x40 双字 0xF6000000 每MFT记录簇数
0x44 双字 0x01000000 每索引簇数
0x48 8字节 0x14A51B74C91B741C 卷标
0x50 双字 0x00000000 检验和



MFT中的文件记录大小一般是固定的,不管簇的大小是多少,均为1KB。文件记录在MFT文件记录数组中物理上是连续的,且从0开始编号,所以,NTFS是预定义文件系统。MFT仅供系统本身组织、架构文件系统使用,这在NTFS中称为元数据(metadata,是存储在卷上支持文件系统格式管理的数据。它不能被应用程序访问,只能为系统提供服务)。其中最基本的前16个记录是操作系统使用的非常重要的元数据文件。这些元数据文件的名字都以“$”开始,所以是隐藏文件,在Windows 2000/XP中不能使用dir命令(甚至加上/ah参数)像普通文件一样列出。在WINHEX中带有NFI.EXE,用此工具可以显示这些记录与文件的对应关系,下一次再详细解释。



这些元数据文件是系统驱动程序管理卷所必需的,Windows 2000/XP给每个分区赋予一个盘符并不表示该分区包含有Windows 2000/XP可以识别的文件系统格式。如果主文件表损坏,那么该分区在Windows 2000/XP下是无法读取的。为了使该分区能够在Windows 2000/XP下能被识别,就必须首先建立Windows 2000/XP可以识别的文件系统格式即主文件表,这个过程可通过高级格式化该分区来完成。Windows以簇号来定位文件在磁盘上的存储位置,在FAT格式的文件系统中,有关簇号的指针包含在FAT表中,在NTFS中,有关簇号的指针则包含在$MFT及$MFTMirr文件中。



NTFS使用逻辑簇号(Logical Cluster Number,LCN)和虚拟簇号(Virtual Cluster Number,VCN)来对簇进行定位。LCN是对整个卷中所有的簇从头到尾所进行的简单编号。用卷因子乘以LCN,NTFS就能够得到卷上的物理字节偏移量,从而得到物理磁盘地址。VCN则是对属于特定文件的簇从头到尾进行编号,以便于引用文件中的数据。VCN可以映射成LCN,而不必要求在物理上连续。



在NTFS卷上,跟随在BPB后的数据字段形成一个扩展BPB。这些字段中的数据使得 Ntldr能够在启动过程中找到主文件表MFT(Master File Tabl )。在NTFS卷上,MFT并不象在FAT 16卷和FAT 32卷上一样,被放在一个预定义的扇区中。由于这个原因,如果在MTF的正常位置中有坏扇区的话,就可以把MFT移到别的位置。但是,如果该数据被破坏,就找不到MFT的位置,Windows 2000假设该卷没有被格式化。
因此,如果一个ntfs的卷提示未格式化,可能并未破坏MFT,依据BPB的各字段的意思是可以重建BPB的。



NTFS的缺省簇的大小



卷大小 每簇的扇区 缺省的簇大小
小于等于512MB 1 512字节
513MB~1024MB(1GB) 2 1024字节(1KB)
1025MB~2048MB(2GB) 4 2048字节(2KB)
大于等于2049MB 8 4KB



从上面可以看出,也就是说不管驱动器多大 NTFS 簇的大小不会超过 4KB



NTFS文档:文档属性定义



每个文档属性都由以下部分组成:



一个由该属性的实际值组成的被称为“流”的重要的字节序列,元数据可访问该流。



文件中的每个文件属性都可能会有一个名字:在这种情况下,在命令行方式下可以通过语法“文件名:属性名”来访问该流(这也是文件名中不能使用“:”的原因)。Windows NT® 使用以下在元数据文件$AttrDef中预定义的文件属性列表(一般会有一个未命名流,为缺省流,未命名流只能有一个,而命名流可以有多个,NTFS支持多流文件):



10 $STANDARD_INFORMATION (标准信息)



20 $ATTRIBUTE_LIST (属性列表)



30 $FILE_NAME (文件名)



40 $VOLUME_VERSION (卷版本)



50 $SECURITY_DEscriptOR (安全描述符)



60 $VOLUME_NAME (卷名)



70 $VOLUME_INFORMATION (卷信息)



80 $DATA (数据)



90 $INDEX_ROOT (索引根)



A0 $INDEX_ALLOCATION (索引分配)



B0 $BITMAP (位图)



C0 $SYMBOLIC_LINK(符号链接)



D0 $EA_INFORMATION (?信息)



E0 $EA



属性流结构



每个文件属性都分为两部分:尽管这两部分属性在文件记录的属性列表中以倒序方式进行记录,但是为了更好的理解它,让我们按下面的顺序进行介绍:



内容部分:



它的结构总是以属性名开始(N字节长),在属性名之后定义该属性是否为常驻属性。当文件属性的数据流就存储在其属性名后时,它就是常驻属性,这样,对于那些流较小且不会增长的文件属性就可以提供更佳的访问次数。如果一个文件属性是非常驻的,那么其流就存储在一个或多个扩展或称为运行中。运行是一个在逻辑簇号上连续的区域。为访问这些运行,NTFS紧跟在文件属性名后存储有一个称为运行列表的表。



头部:



从头部开始的偏移长度描述:



0 4 Type (类型)



4 4 Length (长度)



8 1 Non-resident flag (非常驻标志)



9 1 N=Name length (文件名长度)



A 2 Offset to the content part (相对内容部分的偏移值)



C 2 Compressed flag (压缩标志)



E 2 Identificator (标识)



文件名长度:



00 表示文件属性没有命名。



压缩标志:在NTFS中,数据压缩是在文件属性级别上实现的,这就意味着,如果出现意外,你也不会释放出很多的数据。这样,尽管只是对文件进行压缩,但压缩文件同时就意味着其属性数据也一样被压缩。从现在开始, 其头部的安排依赖文件的常驻属性:



对一个常驻属性来说,从头部开始的偏移描述如下:



10 4 Length of the stream (流长度)



14 2 Offset to the stream (流偏移)



16 2 Indexed flag (索引标志)



索引标志:



文件属性通过一个索引入口进行索引。



对于一个非常驻的文件属性,从头部开始的偏移描述如下:



10 8 Starting VCN (起始VCN)



18 8 Last VCN (结束VCN)



20 2 Offset to the runlist (运行列表偏移)



22 2? Number of compression engine ? (压缩引擎号)



28 8 Allocated size of the stream (为流分配的单元大小)



30 8 Real size of the stream (实际的流大小)



38 8 Initialized data size of the stream (流已初始化大小)



VCN :Virtual Cluster Number(虚拟簇号)的缩略词。VCN是一个与非常驻属性相关联的概念。VCN从文件属性流的第一个运行的第一个簇(VCN 0)到最后一个运行的最后一个簇进行编号。 当某个运行列表非常大,文件属性不能放在一个文件记录中时,描述文件的文件属性就会存储在几个文件记录中,运行列表也分成几个小片。起始VCN域和结束VCN域都用于定位其文件记录指示—即运行列表—运行所指定的VCN 。



注:如果属性可以放在一个文件记录内,则结束VCN域(这种情况下没有使用)可能是“00 00 00 00 00 00 00 00”。



压缩引擎的数量:



为达到最好的压缩比率,NTFS可以根据不同类型的数据使用不同的压缩引擎。当前的压缩引擎使用值04。



为流分配的单元大小:它几倍于卷上用来存储文件属性流所描述的分配空间。



如果流没有压缩,它就是数倍于簇空间大小的实际大小,相反,则比较小。



流的实际大小:
文件属性流在压缩前的大小。
流的初始化大小:
这是文件属性流的压缩后的大小(总是低于分配大小)。如果此流未被压缩,就是它的实际大小 。
注意:
常驻文件属性从不被压缩(也没有压缩引擎号域),因为它的流太小。



信息是足够的:名字长+内容部分的偏移值 =到流的偏移值(常驻属性)或者到运行列表的偏移值(非常驻悔改)。

- 作者: disksos 2005年09月1日, 星期四 11:42  回复(0) |  引用(0) 加入博采

常用的数据库备份类型有哪些
对数据库的备份是网站管理人员的必修课,那么常用的数据库备份方式有哪些呢?应如何选择?
数据库备份有四种类型,分别应用于不同的场合,下面简要介绍一下。

    1、完全备份

    这是大多数人常用的方式,它可以备份整个数据库,包含用户表、系统表、索引、视图和存储过程等所有数据库对象。但它需要花费更多的时间和空间,所以,一般推荐一周做一次完全备份。

    2、事务日志备份

    事务日志是一个单独的文件,它记录数据库的改变,备份的时候只需要复制自上次备份以来对数据库所做的改变,所以只需要很少的时间。为了使数据库具有鲁棒性,推荐每小时甚至更频繁的备份事务日志。

    3、差异备份

    也叫增量备份。它是只备份数据库一部分的另一种方法,它不使用事务日志,相反,它使用整个数据库的一种新映象。它比最初的完全备份小,因为它只包含自上次完全备份以来所改变的数据库。它的优点是存储和恢复速度快。推荐每天做一次差异备份。

    4、文件备份

    数据库可以由硬盘上的许多文件构成。如果这个数据库非常大,并且一个晚上也不能将它备份完,那么可以使用文件备份每晚备份数据库的一部分。由于一般情况下数据库不会大到必须使用多个文件存储,所以这种备份不是很常用。

- 作者: disksos 2005年09月1日, 星期四 11:41  回复(15) |  引用(0) 加入博采