|
用户名:冥冢 笔名:冥冢 地区: 山东-济南 行业:其他 |
| 日 | 一 | 二 | 三 | 四 | 五 | 六 |
[转载]Visual Basic 6 逆向工程与反逆向工程 第二部分
[转载]Visual Basic 6 逆向工程与反逆向工程 第一部分
Postfix + Cyrus-IMAP + Cyrus-SASL + MySQL + IMP
Kfsensor IDS+HONEYPOT高级配置
Kfsensor IDS+HONEYPOT高级配置策略。希望大家能专心学习下
KFSENSOR的优点:
1)准确性比较强,防火墙与其他的IDS常常会被一些"合法"了的网络通信所"迷惑",从而被RULE所"曲解",而KFSENSOR是不会分辨所有的连接中谁是合法,谁是不合法的。
2)低成本,KFSENSOR会在被攻击时以假睡眠方式来"欺骗"攻击者,并且只使用了极少的处理时间与网络资源。 它安装在用户的计算机时是不会影响其他程序的正常进行的,并且不需要其他附加的硬件。
3)使用简便。当你使用了KFSENSOR时就会很快得发现到这一点了。它的配置与操作到是以直线的"方向"进行的, 这只需要你看看说明,修改一下就可以正常使用了。
4)实时探测功能。只要在运行此程序,报告攻击与分析结果都会在很短的时间里完成。
5)探测未知的数据攻击,KFSENSOR不像其他的产品,它是不会依靠已知的攻击类型数据去探测的,它可以动态得探测其他新型的攻击。
6)安全的"渗透性"。KFSENSOR可以补足其他安全产品的不足,并提供附加层次的安全性。
7)只要一个管理员就通过配置监视与管理整个组织的HONEYPOT监视器了。
实验环境:PWIN2000PRO+KFSENSOR VER 1.1.0

工具栏:(启动工具栏:"VIEW"---》"TOOLBAR")
工具栏第一项为(红色的小喇叭)为PORTS显示(端口显示)。
第二项为"客人"模式显示。
第三项是启动HONEYPOT,
第四项是 停止HONEYPOT,最后一项为重启HONEYPOT。
任务栏: 任务栏有4个菜单,分别是"FILE""VIEW""Scenario""HELP"。



如上图。
EVENT版块:
start time-------------行为开始时间
end time--------------行为停止时间
event ID---------------事件ID
TYPE------------------连接方式
DISCSRIPTION---事件详细描述
SERVERITY-------事件激烈程度
VISITOR版块:
IP----------------------入侵者IP
PORT----------------入侵者使用的端口
DOMAIN------------入侵者机器名
SENSOR版块:
IP---------------------探测器使用者IP
PORT---------------探测器被入侵端口
BOUND------------探测器所绑定的IP
PROTOCOL-----协议类型
ACTION-----------探测器对此事件所做出的行为
SIM SERVER--简明(预设置)的SERVER BANNER
DETAILS版块:
CLOSED BY------最后是由哪一方关闭此次连接的
Limit Exceeded---超出流量描述
RECEIVED---------从入侵者发出,由探测器接收到的数据
RESPONSE-------从探测器发出,由入侵者接收到的数据
"EXPAND"按钮------------展开(展开后可以选择多种显示格式,在‘FORMAT'栏上可以选择)
"NEXT"按钮-----------------下一个ID的事件详细情况
"PREVIOUS"按钮--------前一个ID的事件详细情况

接下来是介绍"VIEW"下的"PORTS"与"VISITORS"显示模式。
"PORTS"与"VISITORS"分别是指工具栏的那两种显示方式。 "PORTS"模式比较直观,大概就与其他的防火墙在模式上差不多吧。 "VISITORS"模式在左边的窗口会记录下入侵者的机器名与IP,单击选定后会在右边的窗口显示他对本机的行为与本机对他的反应等。

选择"LOAD EVENT..."可以选择读取某段时间内的事件。
"HIDE EVENT"为隐藏事件,向右的菜单有特定的条件供你选择。
"NEWEST EVENTS FIRST"与"OLDEST EVENTS FIRST"表示选择右边事件窗口中的事件排序是以最新事件发生的时间排序还是以最旧的事件发生的时间排序。
"ADD/REMOVE COLUMNS..."为一个专门管理右窗口的显示项目的菜单,它可以增加/减少右窗口中的项目,还可以移动他们之间的位置。 不会的话,可以"RESTORE DEFAULTS"啊:)
"CUSTOMIZE..."为KFSENSOR的主要功能选定。(其实这个基本上保持原设置就可以了。)
"TOOLBAR"与"STATUS BAR"分别代表工具栏与状态栏的显示与隐藏。

"Scenario":(这里Scenario的中文意思与我们这里使用不大匹配,所以我把它翻译成‘任务')
"SWITCH Scenario..."----------转换‘任务'
"EDIT Scenario..."----------------编辑‘任务'(这个工具这一栏是最重要的,你可以在这里用"ADD"增加,"EDIT"编辑,"DELETE"删除,&qot;COPY"复制) 选定‘任务'后按"EDIT"可以进入选定‘任务'的主菜单。
上图所示,"CHANGE ALL..."可以一次修改所有选项的属性,"ACTIVE"可以修改选定项的ACTIVE属性,"ADD"为增加选项,"DELETE"为删除选定的选项,"EDIT"为编辑选定的选项。

"EDIT SIM SERVER..."----------------简明的SERVER BANNER设置
上图所示,也是有"ADD""DELETE"等,最主要的还是"EDIT",选定后按"EDIT"可以编辑很多重要的东西(自己尝试一下吧:P)
"DOS attack Settings..."------------防御D.o.S攻击的策略
上图所示,"LIMITS"版块包括"MAX CLIENTS"("最大客户端数"),"MAX RECEIVE SIZE(BYTES)"(最大接受数据大小‘以字节为单位'),"MAX RECEIVE LOG SIZE(BYTES)"(最大接受日志大小‘以字节为单位'),"Visitor DOS Attack Limits"版块包括"MAX concurrent CONNECTIONS PER IP"("某一个IP在同一时间内可以允许的最大连接数"),"MAX CONNECTIONS PER IP"("某一个IP可以允许的最大连接数"),"LOCK OUT FOR(MINUTES)"(当上两项被超过时,KFSENSOR会自动将攻击者的IP锁定在一个时间内,在这个时间内如果此IP没有再向本机发送连接请求的话它就可以得到‘允许'连接的请求了,相反则被本机拒绝接受,此项就为此时间的长短选项,以分钟为单位),"Global DOS Attack Limit"版块包括"Max TCP Connections"("允许连接的最大TCP数量"),"Max UDP Connections"("允许连接的最大UDP数量"),"Reset Lock Up After (Hours)"("LOCK UP后的重新调整时间")。注:"Global DOS Attack Limit"版块中的选项是为了应付DDOS的,所以要慎重选择。
"EMAIL Alerts..."-------------------通过EMAIL发出警报的设置
"SET UP WIZARDS..."-----------------策略建立向导 此为第一次启动时的"策略建立向导",可以帮你快捷的运用这个工具。

介绍一下KFSENSOR的帮助吧,关于KFSENSOR的帮助目录树分为三个部分:
1)KFSENSOR的介绍,包括介绍,未来的版本与版权。
2)KFSENSOR的"观念": 观念的总体看法 KFSENSOR的优点 KFSENSOR是如何工作的 KFSENSOR的术语 KFSENSOR如何与其他安全产品相配合 展开KFSENSOR 攻击的类型 行为解析(这篇不错) 测试KFSENSOR的方法与途径
3)KFSENSOR手册
SOME TIPS:
此程序默认使用的所有文本都为XML文本。
启动后会在HONEYPOT机上生成一个环型连接,连接两端分别为kfsensmonitor.exe与kfsnserv.exe两个进程调用。
此工具最好是配合ACTIVE PORTS一齐使用。 (简单介绍一下ACTIVE PORTS吧,其实它就是FPORT.EXE的GUI版本,而且还有针对某端口所开进程的强行杀死功能。) 使用ACTIVE PORTS配合KFSENSOR的方法是:第一,可以有效的发现有什么在企图连接你的主机,连接了你的什么端口等。第二,好象TCP139等很难直接用OS删除的端口可以先使用ACTIVE PORTS将此端口的使用者进程强行杀死,然后用KFSENSOR监听。
在此工具的根目录下有一个名曰"CONF"的子目录,进去后会发现一个名字为"KFSensor"的XML文本文件,使用ASCII编辑器(记事本等)打开后,可以发现里面的‘内部结构'了,其实此文本为KFSENSOR启动时的默认配置,如:
TRUE
9747
127.0.0.1
就是指:
KFSENSOR默认启动时为ACTIVE状态
默认主进程使用端口为9747
默认绑定IP为127.0.0.1
还有很多很多.......下面是有关的详细说明:
--------此工具建立与最后保存了的时间
------------------默认主‘任务'(在‘任务'切换栏可以修改)
-----------------DNS缓存时间
-------------LOCKOUT IP所用的时间(此为默认值,在防DOS栏可以修改)
---------设置EMAIL入侵报告(如果其值为FALSE,其以下子值全部空)
----------日志‘等级'(有几项选择:EMERG‘暴露'ALERT‘警告'CRIT‘标准'ERR‘错误'WARNING‘警告'NOTICE‘注意'INFO‘信息'DEBUG‘调试'
--------最大客户端值(可在防DOS栏修改)
--------------某一个IP在同一时间内可以允许的最大连接数(可在防DOS栏修改)
-------------------某一个IP可以允许的最大连接数(可在防DOS栏修改)
--------------------最大接受日志大小‘以字节为单位'(可在防DOS栏修改)
-----------------------最大接受数据大小‘以字节为单位'(可在防DOS栏修改)
--------------------允许连接的最大TCP数量(可在防DOS栏修改)
--------------------允许连接的最大UDP数量(可在防DOS栏修改)
----------------LOCK UP后的重新调整时间‘以时间为单位'(可在防DOS栏修改)
与之间的为主设置区。不过比较简单,就是我先前举的例子:
---------程序活动状态
----------主程序端口
----主程序绑定端口
----限制于本地主机(此为默认值就可以了)
--------允许监控(此为默认值就可以了)
在后还有两项:
--------------TCP允许接收的缓冲器大小
--------------TCP允许发出的缓冲器大小
在此以后的文本结构分别为每一个‘任务'的主体部分(可以在"Scenario"->>"EDIT Scenario..."中修改)与简单BANNER内容设置部分(可以在"Scenario"->>"EDIT SIM SERVER..."中修改)。
注意:以上的全为此IDS启动后的默认值,只要你使用ASCII编辑工具修改后并保存,再重新启动KFSENSOR,它就可以按你修改后的配置运行了。
基于网络IDS的典型配置
通常来说,一个企业或机构准备进军此领域时,往往选择从基于网络的IDS入手,因为网上有很多这方面的开放源代码和资料,实现起来比较容易,并且,基于网络的IDS适应能力强。有了简单网络IDS的开发经验,再向基于主机的IDS、分布式IDS、智能IDS等方面迈进的难度就小了很多。在此,笔者将以基于网络的IDS为例,介绍典型的IDS开发思路。
根据CIDF规范,我们从功能上将入侵检测系统划分为四个基本部分:数据采集子系统、数据分析子系统、控制台子系统、数据库管理子系统,如附图所示。
具体实现起来,一般都将数据采集子系统(又称探测器)和数据分析子系统在Linux或Unix平台上实现,我们称之为数据采集分析中心;将控制台子系统在Windows NT或2000上实现,数据库管理子系统基于Access或其他功能更强大的数据库,多跟控制台子系统结合在一起,我们称之为控制管理中心。本文以Linux和Windows NT平台为例介绍数据采集分析中心和控制管理中心的实现。
可以按照如下步骤构建一个基本的入侵检测系统。
第一步 获取libpcap和tcpdump
审计踪迹是IDS的数据来源,而数据采集机制是实现IDS的基础,否则,巧妇难为无米之炊,入侵检测就无从谈起。数据采集子系统位于IDS的最底层,其主要目的是从网络环境中获取事件,并向其他部分提供事件。目前比较流行的做法是:使用libpcap和tcpdump,将网卡置于"混杂"模式,捕获某个网段上有的数据流。
libpcap是Unix或Linux从内核捕获网络数据包的必备工具,它是独立于系统的API接口,为底层网络监控提供了一个可移植的框架,可用于网络统计收集、安全监控、网络调试等应用。
tcpdump是用于网络监控的工具,可能是Unix上最著名的sniffer了,它的实现基于libpcap接口,通过应用布尔表达式打印数据包首部,具体执行过滤转换、包获取和包显示等功能。tcpdump可以帮助我们描述系统的正常行为,并最终识别出那些不正常的行为,当然,它只是有益于收集关于某网段上的数据流(网络流类型、连接等)信息,至于分析网络活动是否正常,那是程序员和管理员所要做的工作。
libpcap和tcpdump在网上广为流传,开发者可以到相关网站下载。
第二步 构建并配置探测器,实现数据采集功能
1. 应根据自己网络的具体情况,选用合适的软件及硬件设备,如果你的网络数据流量很小,用一般的PC机安装Linux即可,如果所监控的网络流量非常大,则需要用一台性能较高的机器。
2. 在Linux服务器上开出一个日志分区,用于采集数据的存储。
3. 创建libpcap库。从网上下载的通常都是libpcap.tar.z的压缩包,所以,应先将其解压缩、解包,然后执行配置脚本,创建适合于自己系统环境的Makefile,再用make命令创建libpcap库。libpcap安装完毕之后,将生成一个libpcap库、三个include文件和一个man页面(即用户手册)。
4. 创建tcpdump。与创建libpcap的过程一样,先将压缩包解压缩、解包到与libpcap相同的父目录下,然后配置、安装tcpdump。
如果配置、创建、安装等操作一切正常的话,到这里,系统已经能够收集到网络数据流了。至于如何使用libpcap和tcpdump,还需要参考相关的用户手册。
第三步 建立数据分析模块
网上有一些开放源代码的数据分析软件包,这给我们构建数据分析模块提供了一定的便利条件,但这些"免费的午餐"一般都有很大的局限性,要开发一个真正功能强大、实用的IDS,通常都需要开发者自己动手动脑设计数据分析模块,而这往往也是整个IDS的工作重点。
数据分析模块相当于IDS的大脑,它必须具备高度的"智慧"和"判断能力"。所以,在设计此模块之前,开发者需要对各种网络协议、系统漏洞、攻击手法、可疑行为等有一个很清晰、深入的研究,然后制订相应的安全规则库和安全策略,再分别建立滥用检测模型和异常检测模型,让机器模拟自己的分析过程,识别确知特征的攻击和异常行为,最后将分析结果形成报警消息,发送给控制管理中心。
设计数据分析模块的工作量浩大,并且,考虑到"道高一尺,魔高一丈"的黑客手法日益翻新,所以,这注定是一个没有终点的过程,需要不断地更新、升级、完善。在这里需要特别注意三个问题:
① 应优化检测模型和算法的设计,确保系统的执行效率;
② 安全规则的制订要充分考虑包容性和可扩展性,以提高系统的伸缩性;
③ 报警消息要遵循特定的标准格式,增强其共享与互操作能力,切忌随意制订消息格式的不规范做法。
第四步 构建控制台子系统
控制台子系统负责向网络管理员汇报各种网络违规行为,并由管理员对一些恶意行为采取行动(如阻断、跟踪等)。由于Linux或Unix平台在支持界面操作方面远不如常用的Windows产品流行,所以,为了把IDS做成一个通用、易用的系统,笔者建议将控制台子系统在Windows系列平台上实现。
控制台子系统的主要任务有两个:
① 管理数据采集分析中心,以友好、便于查询的方式显示数据采集分析中心发送过来的警报消息;
② 根据安全策略进行一系列的响应动作,以阻止非法行为,确保网络的安全。
控制台子系统的设计重点是:警报信息查询、探测器管理、规则管理及用户管理。
1.警报信息查询:网络管理员可以使用单一条件或复合条件进行查询,当警报信息数量庞大、来源广泛的时候,系统需要对警报信息按照危险等级进行分类,从而突出显示网络管理员需要的最重要信息。
2.探测器管理:控制台可以一次管理多个探测器(包括启动、停止、配置、查看运行状态等),查询各个网段的安全状况,针对不同情况制订相应的安全规则。
3.规则库管理功能:为用户提供一个根据不同网段具体情况灵活配置安全策略的工具,如一次定制可应用于多个探测器、默认安全规则等。
4.用户管理:对用户权限进行严格的定义,提供口令修改、添加用户、删除用户、用户权限配置等功能,有效保护系统使用的安全性。
第五步 构建数据库管理子系统
一个好的入侵检测系统不仅仅应当为管理员提供实时、丰富的警报信息,还应详细地记录现场数据,以便于日后需要取证时重建某些网络事件。
数据库管理子系统的前端程序通常与控制台子系统集成在一起,用Access或其他数据库存储警报信息和其他数据。该模块的数据来源有两个:
① 数据分析子系统
发来的报警信息及其他重要信息;
② 管理员经过条件查询后对查询结果处理所得的数据,如生成的本地文件、格式报表等。
第六步 联调,一个基本的IDS搭建完毕
以上几步完成之后,一个IDS的最基本框架已被实现。但要使这个IDS顺利地运转起来,还需要保持各个部分之间安全、顺畅地通信和交互,这就是联调工作所要解决的问题。
首先,要实现数据采集分析中心和控制管理中心之间的通信,二者之间是双向的通信。控制管理中心显示、整理数据采集分析中心发送过来的分析结果及其他信息,数据采集分析中心接收控制管理中心发来的配置、管理等命令。注意确保这二者之间通信的安全性,最好对通信数据流进行加密操作,以防止被窃听或篡改。同时,控制管理中心的控制台子系统和数据库子系统之间也有大量的交互操作,如警报信息查询、网络事件重建等。
联调通过之后,一个基本的IDS就搭建完毕。后面要做的就是不断完善各部分功能,尤其是提高系统的检测能力。
无人能逃的灵异测试
★★★切记要慢慢,请不要第一次就看完了全部!一定要慢慢的往下看!这样你才能真的体会到真的很很诡异的喔!
请第一次看到这个测试的朋友,首先静下心来,认真的,快速的用自己的心算来坐下面这个测试,看清楚要求,真实的说出当时的第一个脑子里面的答案,才能看出这个测试的最有效的结果!谢谢!
很诡异喔!!! 但要以最快速的时间心算所看到的数学程序,然后回答问题!开始啰!往下走,并答题吧!
2+2=?
************
************
************
************
************
************
************
************
************
************
************
************
4+4=?
************
************
************
************
************
************
************
************
************
************
8+8=?
************
************
************
************
************
************
************
************
************
************
************
************
16+16=?
************
************
************
************
************
************
************
************
************
************快!随便在12跟5的中间挑一个数字!
************
************
************
************
************
************
************
************
************
************
************
************
************
************挑了吗? 现在继续往下....
************
************
************
************
************
************
************
************
************
************
************
************
************你挑的数字是"7",对吧!
无人能逃的灵异测试2
1+5
************
************
************
************
************
************
************
************
************
************
************
2+4
************
************
************
************
************
************
************
************
************
************
************
3+3
************
************
************
************
************
************
************
************
************
************
************
4+2
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
************
5+1
************
************
************
************
************
************
************
************
************
************
************
************现在持续默念"6"这个数字15秒,然后往下卷动画面!
************
************
************
************
************
************
************
************
************
************
************
************
************快!想一个蔬菜的名字!然后继续往下卷动%
************
************
************
************
************继续卷动.......
************
************
************
************
************
************
************
************
************
你想的是大白菜,对吧
如果不是,你是占2%可以在正常情形下还可以有余力思考别的事的少数人口,98%的人会回答大白菜。诡异哦!听说这个测验是从爱丽丝梦游仙境中兔子国翻译的......
无人能逃的灵异测试3
再来做一个测试> > > >>你是否正常﹖
> > > >>請跟著以下的指示,盡快地回答以下的問題,但要先完成一个問題才回答下一個。你不需要寫下答案,只要心算便可。
> > > >>15+6是多少?
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>3+56
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>89+2
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>12+53
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>75+26
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>75+26
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>25+52
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>63+32
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>123+5
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>快!!!心想一種工具和一種顏色!
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
> > > >>
你剛剛想的是否紅红色的鎚子(chui zi)﹖
> > > >>如果答案不是的話,你就是2%的與別人不同的人∕不正常人,通常98%的人做會回答紅色的鎚子 怎么样!准确吧!
无人能逃的灵异测试4
继续作下一个实验!
跟着下列叙述并且快速回答问题!
算算看啰!
************
************
************
************
************
3+78=?
************
************
************
************
1+5
************
************
************
************
***********
2+4
************
************
************
************
************
3+3
************
************
************
************
************
4+2
************
************
************
************
************
5+1
************
************
************
************
************
************
现在持续默念"6"这个数字15秒,然后往下卷动画面!
************
************
************
************
************
快!说出一种水果的名字!然后继续往下卷动作!
************
************
************
************
************
************
继续卷动.......
************
************
************
************
************
8+329=?
************
***********
**********
***********
***********
***********
27+7=?
***********
快卷动
************
************
************
************
************
说出一个面部器官
***********
***********
***********
************
************
************
************
************
************
************
************
************
************
************
说出一种家禽的名字
************
************
************
************
************
************
************
************
哈哈,是苹果和鼻子和鸡,对不对?
是不是很准呀???
我测试了一下,有两次我属于那2%,有点得意:)
我想和你上床。
女人为了爱情,付出了性;男人为了性,付出了爱情。不可否认,与相爱的人在一起,最原始而无形的心理就是想和她上床,一辈子在一起就是一辈子同床。纵览古今,多少流芳百世的所谓金典的爱情,如"梁山伯与祝英台"、"孟姜女"、"罗密欧与朱丽叶"或近代电影所宣扬的瞬间及永恒的爱情"坦泰尼克号"无不以性来升华真爱,"上床"这个外延广阔而内涵真实的智慧动物行为还不是作为一个重要而必不可少的内容而千古延续吗。柏拉图式的爱情在当今世界上是少有的,可以说几乎没有。 |
我想和你上床,这并不意味着动机不良,为什么总是自己疑神疑鬼而不敢直言呢?当爱情到达一定程度,就提升为一种动作,而这动作也就是爱情必不可少的内容——性行为。唯物主义认为,物质决定意识,所以现实的性行为将决定着爱情的走向。从某种意义说,爱情发展到一定程度才有性的出现,性是爱情的升华,又同时受爱情的影响。我想和你上床,这不仅是一种爱情最原始的表现形式,更是真诚最彻底的示爱方式。虽然听起来不堪入耳,却说明了内心深处最本原的想法与爱的载体,虽然是潜意识的,但更真实、更纯洁。
之所以让人接受不了的原因,完全是因为人们长久受传统思想的束搏习惯于前人制定的框框架架里,无法一下子适应这不合常规却又是最真实的真实。就像一个总在奉承话中生活的人,突然有一天听到批评他的话,总觉得非常难受一样。当然,我想和你上床,他是基于真诚示爱之上的心理表现,是一种自始至终恒久不变的唯你心态。而不是见异思迁,朝三暮四的心机。不否认有不负责任的言行,如性搔扰、强奸等,是一种侵犯人身权的犯罪行为,是受法律约束和道德谴责的。
相爱中的恋人有想和对方上床的心理是正常的,这才是真正人的想法。有这种想法,决不是什么动机不良,无须强压于心底而不敢直言。憋是会憋出病来的。当相爱的一方提出了这个要求时,就表明他对爱的勇敢进取和对爱升华的决心。当然冲动是存在的,可冲动也是爱的一种表现,只不过对爱的诠释认识得肤浅些罢了。
我爱你,我就想和你上床!我就想和你上床,其实是因为我真爱着你。
SHELL病毒简介
硬盘数据恢复知识2
FAT表引起的读写故障
硬盘文件分配表庞大无法手工修复,只能依靠工具。
FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,即采用其m命令把第二个FAT表移到第一个表处即可(不建议这样做)。如果第二个FAT表也损坏了,则也无法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是文本文件则可从中提取出完整的或部分的文件内容。
软盘文件分配FAT表修复
在运行某个程序时,有时会在屏幕上看到:File allocation table bad,drive A(文件分配表坏)的错误信息,导致程序不能正常运行。
我们知道,在磁盘中有两个文件分配表:FAT1和FAT2。FAT1用于日常工作,FAT2备用。因此,在FAT1损坏时,可用FAT2表修补。
具体方法是:运行DEBUG,将FAT2读入缓冲区,用缓冲区的FAT2数据覆盖磁盘中的FAT1。
例:修复3寸1.44M软盘,在A驱
在DOS环境下进入debug环境
在"-"提示符下进行如下操作:
-L 100 0 0A 9
-W 100 0 1 9
-q
其它类型的软盘的修复方法参照下表进行。
起止逻辑扇区 5.25"低密 5.25"高密 3.5"低密 3.5"高密
BOOT区 0 0 0 0
FAT1 1-2 1-7 1-3 1-9
FAT2 3-4 8-0EH 4-6 0A-12H
例如我们要修复5.25"高密软盘的FAT,则需将上述参数改为:
-L 100 0 8 7
-W 100 0 1 7
-q
●硬盘数据恢复,二分区表的推算
Master Boot Record
The Master Boot Record is located at the physical beginning of a hard disk, editable using the Disk Editor. It consists of a master bootstrap loader code (446 bytes) and four subsequent, identically structured partition records. Finally, the hexadecimal signature 55AA completes a valid Master Boot Record.
硬盘的主引导记录在硬盘的0磁头0柱面1扇区。
主引导记录由三部分组成:
(1)主引导程序;
(2)四个分区表;
(3)主引导记录有效标志字。
详见表1。
[表1主引导记录结构]
位 置 内 容
0000H -00D9H 主引导记录代码区
00DAH -01BDH 空闲区
01BEH -01CDH 分区1结构信息
01CEH -01DDH 分区2结构信息
01DEH -01EDH 分区3结构信息
01EEH -01FDH 分区4结构信息
01FEH -01FFH 55 AAH 主 引 导 记 录 有 效 标 志
说明:
A,分区表自偏移1BEH处开始,分区表共64个字节,表中可填入四个分区信息,每十六个字节为一个分区说明项,这16个字节含义详见表2。
B,必须注意:扇区号的高二位占用柱面号所在字节的最高二位,即柱面号为10位,扇区号6位。
The format of a partition record is as follows:
Offset Size Description
0 8 bit A value of 80 designates an active partition.
1 8 bit Partition start head
2 8 bit Partition start sector (bits 0-5)
3 8 bit Partition start track (bits 8,9 in bits 6,7 of sector)
4 8 bit Operating system indicator
5 8 bit Partition end head
6 8 bit Partition end sector (bits 0-5)
7 8 bit Partition end track (bits 8,9 in bits 6,7 of sector)
8 32 bit Sectors preceding partition
C 32 bit Length of partition in sectors
Operating system indicators: (hexadecimal, incomplete list)
00 Empty partition-table entry
01 DOS FAT12
04 DOS FAT16 (up to 32 MB)
05 DOS 3.3+ extended partition
06 DOS 3.31+ FAT16 (over 32 MB)
07 OS/2 HPFS, Windows NT NTFS, Advanced Unix
08 OS/2 v1.0-1.3, AIX bootable partition, SplitDrive
09 AIX data partition
0A OS/2 Boot Manager
0B Windows 95+ FAT32
0C Windows 95+ FAT32 (using LBA-mode INT 13 extensions)
0E DOS FAT16 (over 32 MB, using INT 13 extensions)
0F Extended partition (using INT 13 extensions)
17 Hidden NTFS partition
1B Hidden Windows 95 FAT32 partition
1C Hidden Windows 95 FAT32 partition (using LBA-mode INT 13 extensions)
1E Hidden LBA VFAT partition
42 Dynamic disk volume
50 OnTrack Disk Manager, read-only partition
51 OnTrack Disk Manager, read/write partition
81 Linux
82 Linux Swap partition, Solaris (Unix)
83 Linux native file system (ext2fs/xiafs)
85 Linux EXT
86 FAT16 volume/stripe et (Windows NT)
87 HPFS fault-tolerant mirrored partition, NTFS volume/stripe set
BE Solaris boot partition
C0 DR-DOS/Novell DOS secured partition
C6 Corrupted FAT16 volume/stripe set (Windows NT)
C7 Corrupted NTFS volume/stripe set
F2 DOS 3.3+ secondary partition
[表2分区结构信息]
偏移 长度 含义
00H 1 活动分区指示符,该值为80H表示为可自举分区(仅有一个),该值为00H表示其余分区。
01H 1 分区起始磁头号。
02H 1 低6位是分区开始的扇区,高2位是分区开始的柱面的头两位。
03H 1 分区开始的起始柱面号的低8位。
04H 1 系统标志,该值为01H表示采用12位FAT格式的DOS 分区,该值04H表示采用16位FAT格式的DOS分区,该值为05H表示为扩展DOS分区,为06H表示为DOS系统。
05H 1 分区终止头号
06H 1 低6位为分区结束的扇区号,头2位为结束柱面号的前2位。
07H 1 分区结束柱面号的低8位。
08H 4 本分区前的扇区数,低位字节在 前。
0CH 4 本分区总的扇区数,低位字节在前。
重要公式:
02H为X,03H为Y。柱面=(X>>6)*16^2+Y;
以我的硬盘为例:
有九个可用分区,二个不可用分区;
两个Primary NTFS分区,第二个为active;
七个Extened 分区,第五个为NTFS其他为FAT32.
.
主分区表数据:位置cylinder0, head 0,sector1
偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 33 C0 8E D0 BC 00 7C FB 50 07 50 1F FC BE 1B 7C
1 BF 1B 06 50 57 B9 E5 01 F3 A4 CB BE BE 07 B1 04
2 38 2C 7C 09 75 15 83 C6 10 E2 F5 CD 18 8B 14 8B
3 EE 83 C6 10 49 74 16 38 2C 74 F6 BE 10 07 4E AC
4 3C 00 74 FA BB 07 00 B4 0E CD 10 EB F2 89 46 25
5 96 8A 46 04 B4 06 3C 0E 74 11 B4 0B 3C 0C 74 05
6 3A C4 75 2B 40 C6 46 25 06 75 24 BB AA 55 50 B4
7 41 CD 13 58 72 16 81 FB 55 AA 75 10 F6 C1 01 74
8 0B 8A E0 88 56 24 C7 06 A1 06 EB 1E 88 66 04 BF
8 0A 00 B8 01 02 8B DC 33 C9 83 FF 05 7F 03 8B 4E
9 25 03 4E 02 CD 13 72 29 BE 59 07 81 3E FE 7D 55
A AA 74 5A 83 EF 05 7F DA 85 F6 75 83 BE 2E 07 EB
B 8A 98 91 52 99 03 46 08 13 56 0A E8 12 00 5A EB
C D5 4F 74 E4 33 C0 CD 13 EB B8 00 00 80 24 45 00
D 56 33 F6 56 56 52 50 06 53
1B 00 00
1C 01 46 07 FE 7F 1E C6 28 11 00 99 31 35 00 80 00
1D 41 30 07 FE 7F B2 30 85 4A 00 C3 1C 20 00 00 00
1E 41 B3 0F FE FF FF F3 A1 6A 00 08 FE F7 01 00 00
1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
主分区表分析:
Master bootstrap loader code0000H -00D9H 33 C0 8E D0 BC 00 7C FB 50 。。。主引导记录代码,表示住分区表
01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(0)知该分区Boot Sector位于:起始磁头为0头,起始柱面为70D,起始扇区为1扇区。
01CEH -01DDH 分区2结构信息 multi(0)disk(0)rdisk(0)partition(1)活动分区指示符为80H,表示该分区为可自举分区。系统标志为07表示OS/2 HPFS, Windows NT NTFS, Advanced Unix系统。知该分区Boot Sector位于:起始磁头为0头,起始柱面为304D,起始扇区为1扇区。
01DEH -01EDH 分区3结构信息Extended partition系统标志字节为0F,说明是扩展分区Extended partition (using INT 13 extensions)。从扩展分区说明项知下一个分区表位于:起始磁头为0头,起始柱面为435D,起始扇区为1扇区。
01EEH -01FDH 分区4结构信息分区说明项数据均为00H没有定义。
01FEH -01FFH 55 AAH 主引导记录有效标志
扩展分区一分区表数据:位置cylinder435D, head 0,sector1
偏移 0 1 2 3 4 5 6 7 8 9 A B C D E F
0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1B 00 00
1C 41 B3 0B FE FF 08 3F 00 00 00 97 D5 53 00 00 00
1D C1 09 05 FE FF FF D6 D5 53 00 D6 D5 53 00 00 00
1E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
1F 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA
扩展分区表分析:
01BEH -01CDH 分区1结构信息multi(0)disk(0)rdisk(0)partition(3)知该分区位于:起始磁头为1头,起始柱面为435D,起始扇区为1扇区(分区表占用磁头0)。系统标志字0BH表示 Windows 95+ FAT32
01BEH -01CDH 分区1结构信息系统标志字节为05H,说明是扩展DOS分区。于是知下一个分区表位于:起始磁头为0头,起始柱面为777D,起始扇区为1扇区。
Partition Table Entry #3 数据均为00H没有定义。
Partition Table Entry #4 数据均为00H没有定义。
其他扩展分区同理。
●硬盘数据恢复,深入逻辑分区
FDISK /MBR 命令流程的分支有二:
读得主引导扇区检验标志(字) AA55h,操作单一,仅向主引导扇区位移 0-1BDH 写入当前系统固有的主引导程序,安全可靠。
难能可贵的是它不触动主引导信息其余模块(分区表、检验标志),以及随后的 DOS 引导信息、文件分配表、根目录,省事许多。检出检验标志非 AA55h,写主引导程序、初始化分区表及登录检验标志,在 MS DOS 7.0 - 8.0 环境中,常规以系统支持的最大容量分配给基本 DOS 分区的方式登录分区表。分区表初始化(可能幸存的分区表被清除)的后果不难想象; 目前硬盘大都设置有其它分区,即使在高版本 DOS 环境中运作,常规建立的分区表每难能符合实际需求,后续工作量也相当可观。
不过,它也不触动位于其后的 DOS 引导信息、文件分配表及根目录,高版本 FDISK /MBR 命令适用于修复仅设基本 DOS 分区的硬盘分区表及检验标志受损,或主引导信息全毁。
可见,在运行 FDISK /MBR 命令之前,需查明检验标志是否 AA55h,酌情处理,切忌盲动。
经由 DOS 软盘引导,认硬盘,检验标志必健在。
另外,在 FDSIK 主菜单中选 4. Display Partition Information,列出分区信息,进一步证实检验标志正常; 若现 No partitition defined,检验标志每变异,而分区表或许尚健在。
现在深入每一个逻辑分区。逻辑分区结构如下:
FAT12/16
Logical sector =0 Logical sector=1(Floppy disk=1~9) Logical sector=1+sectors_per_FAT(Floppydisk=10~18) Logical sector=1+sectors_per_FAT*2(Floppy disk=19~32) Logical sector=1+sectors_per_FAT*2+sectors_of_rootdirectories(Floppy disk=33~)
DOS Boot Sector FAT1 FAT2 ROOT Directory Data area(where files and subdirectories are stored)
FAT32
Usually 32 sectors Logical sector =0032h Logical sector =0032h+ 2*sectors_per_FAT
DOS Boot Recore 3 Sectors Reserved sectors Copy of record Reserve sectors FAT1 FAT2 Data area(where files and all bdirectories are stored)
在逻辑分区当中用逻辑的cluster和sector。换算关系为:
cluster=logical_sector/sectors_per_cluster;
这里sectors_per_cluster是在BIOS Parameter Block里得到的。
Sector=( logical_sector mod sectors_per_track)+1;
Head=( logical_sector / sectors_per_track)mod total_heads;
Cylinder= logical_sector(sectors_per_track* total_heads);
logical_sector=( cluster-2)*sectors_per_cluster+sector_of_file_area_offset;
logical_sector=(sector-1)+head*sector_per_track+sector*sector_per_track*heads;
每个扇区长度=512字节
总簇数=逻辑盘容量/簇容量
总簇数=FAT表长度(字节)/每个表项长度(字节)-2
FAT表长度=逻辑盘容量/簇容量*每个表项长度
Dos引导记录块位于逻辑0 sector中包含三部分:
(1) 磁盘IO参数表BPB;
(2) 磁盘基数表;
(3) 引导区代码。
FAT16的BPB(BIOS Parameter Block)表,描述逻辑盘结构组成,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等。FAT32系统中,BPB表的偏移与FAT16不同,但表项基本相同。整个隐藏扇区部分都作为逻辑盘的描述区域。
典型的primary partion 的磁盘IO参数表BPB:
典型的 logical partion 磁盘参数表:
硬盘BPB主要结构说明:
(Cylinder柱面/磁道-Side/Head磁头-Sector扇区地址以下简称为?-?-?)
主分区
名称 地址 长度(扇区)
主引导记录(Main Boot Record) 0-0-1 1
系统扇区(System Secotrs) 0-0-2,0-0-63 62
引导扇区(Boot) 0-1-1 1
扩展分区
名称 地址 长度(扇区)
扩展分区(Extend Partition) ?-y-1 1
系统扇区(System Secotrs) ?-y-2,?-y-63 62
引导扇区(Boot) ?-(y+1)-1 1
其后各项与主分区相同......
隐藏扇区(Hidden Secotrs):
FAT16 0-1-1 1
FAT32 0-1-1 32
文件分配表(File Allocation Table):
FAT16 0-1-2 根据逻辑盘容量变化
FAT32 0-1-33 根据逻辑盘容量变化
说明:
FAT16的每个表项由2字节(16位)组成,通常每个表项指向的簇包含64个扇区,即32K字节。 逻辑盘容量最大为2047MB。
FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节。逻辑盘容量最小为512MB。
对于C分区,在MBR的偏移01c2H处,FAT16为06H,FAT32为0CH。
FAT是DOS、Windows9X系统的文件寻址格式,位于DBR之后。
在解释文件分配表的概念的时候,我们有必要谈谈簇(Cluster)的概念。文件占用磁盘空间,本单位不是字节而是簇。一般情况下,软盘每簇是1个扇区,硬盘每簇的扇区数与硬盘的总容量大小有关,可能是4、8、16、32、64......同一个文件的数据并不一定完整地存放在磁盘的一个连续的区域内,而往往会分成若干段,像一条链子一样存放。这种存储方式称为文件的链式存储。由于硬盘上保存着段与段之间的连接信息(即FAT),操作系统在读取文件时,总是能够准确地找到各段的位置并正确读出。
为了实现文件的链式存储,硬盘上必须准确地记录哪些簇已经被文件占用,还必须为每个已经占用的簇指明存储后继内容的下一个簇的簇号。对一个文件的最后一簇,则要指明本簇无后继簇。这些都是由FAT表来保存的,表中有很多表项,每项记录一个簇的信息。由于FAT对于文件管理的重要性,所以为了安全起见,FAT有一个备份,即在原FAT的后面再建一个同样的FAT。初形成的FAT中所有项都标明为"未占用",但如果磁盘有局部损坏,那么格式化程序会检测出损坏的簇,在相应的项中标为"坏簇",以后存文件时就不会再使用这个簇了。FAT的项数与硬盘上的总簇数相当,每一项占用的字节数也要与总簇数相适应,因为其中需要存放簇号。FAT的格式有多种,最为常见的是FAT16和FAT32。
当一个磁盘Format后,在其逻辑0扇区(即BOOT扇区)后面的几个扇区中存在着一个重要的数据表—文件分配(FAT),文件分配表一式两份,占据扇区的多小凭磁盘类型大小而定。顾名思义,文件分配表是用来表示磁盘问件的空分配信息的。它不对引导区,文件目录的信息进行表示,也不真正存储文件内容。
我们知道磁盘是由一个一个扇区组成的,若干个扇区合为一个簇,文件存取是以簇为单位的,哪怕这个文件只有1个字节。每个簇在文件分配表中都有对应的表项,簇号即为表项号,每个表项占1.5个字节(磁盘空间在10MB以下)或2个字节(磁盘空间在10MB以上)。为了方便起见,以后所说的表项都是指2个字节的。
FAT表的开始由介质描述符+一串"已占用"标志组成:
FAT16硬盘----F8 FF FF 7F
FAT32硬盘----F8 FF FF 0F FF FF FF 0F
每个有效的FAT结构区包含两个完全相同的拷贝:FAT1、FAT2
文件分配表结构如1(H表示16进制)
表1
第0字节 表头,表磁盘类型。FFH双面软盘,每次道8扇区FEH单面软盘,每磁道8扇区FDH双面软盘,每磁道9扇区FCCH单面软盘,每磁道9扇区FC8H硬盘
第1~2字节 (表项号1)表示第一簇状态,因第一簇被系统占据,故此两字节为FFFFH
第3~4字节 (表项号2)表示第二簇状态,若为FFFH表此簇为坏的,DOS已标记为不能用;0000H表示此簇为空,可以用;FFF8H表不能示该簇为文件的最后一簇;其余数字表示文件的下一个簇号,注意高字节在后,低字节在前。
第5~6字节 (表项号3)表示第三簇状态,同上。
注意:
不要把表项内的数字误认为表示当前簇号,而应是该文件的下一个簇的簇号。.高字节在后,低字节在前是一种存储数字方式,读出时应对其进行调整。是如两字节12H,34H,应调整为3412H。
文件分配表与文件目录(FDT)相配合,可以统一管理整个磁盘的文件。它告诉系统磁盘上哪些簇是坏的或已被使用,哪些簇可以用,并存储每个文件所使用的簇号。它是文件的"总调度师"。
当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。
DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除,这就是undelete.exe,unerase.exe等一类恢复删除工具能起作用的原因。
文件分配表在系统中的地位十分重要,用户最好不要去修改它,以免误操作带来严重的后果。
典型的FAT32表:
F8 FF FF FF FF FF FF FF 96 C4 00 00 FF FF FF 0F
FF FF FF 0F 06 00 00 00 FF FF FF 0F 08 00 00 00
09 00 00 00 0A 00 00 00 0B 00 00 00 0C 00 00 00
0D 00 00 00 0E 00 00 00 0F 00 00 00 10 00 00 00
FF FF FF 0F 00 00 00 00 FF FF FF 0F 14 00 00 00
15 00 00 00 FF FF FF 0F FF FF FF 0F FF FF FF 0F
19 00 00 00 1A 00 00 00 1B 00 00 00 FF FF FF 0F
00 00 00 00 1E 00 00 00 FF FF FF 0F 20 00 00 00
FF FF FF 0F 22 00 00 00 23 00 00 00 24 00 00 00
25 00 00 00 26 00 00 00 27 00 00 00 28 00 00 00
文件目录表(File Directory Table),即根目录区,又称为ROOT区:
紧跟在FAT2的下一个扇区,长度为32个扇区(256个表项)。如果支持长文件名,则每个表项为64个字节,其中,前32个字节为长文件链接说明;后32个字节为文件属性说明,包括文件长度、起始地址、日期、时间等。如不支持长文件名,则每个表项为32个字节的属性说明。
值得注意的是:
1,FAT32没有储存目录的目录区,而 FAT16储存根目录并把子目录放到数据区。
2,表示目录的目录项指出根目录地址同时长度字节为0,表示文件的目录项指出数据地址。
典型的FAT32根目录:
30 30 30 30 30 30 20 20 20 20 20 10 00 12 3C 7C
39 2B 39 2B 05 00 3D 7C 39 2B 3A 34 00 00 00 00
44 4D 32 4B 44 49 53 4B 49 4D 47 20 00 96 DB 40
39 2B 39 2B 0A 00 DC 40 39 2B 88 02 5B 72 13 00
42 49 4E 42 49 4E 20 20 20 20 20 08 00 00 00 00
00 00 00 00 00 00 47 65 09 2B 00 00 00 00 00 00
000000子目录
注意OS7前的怪字符为E5H,表示被删除,被删除文件仍旧能够找到开始簇,数据恢复就依靠这一特点。
数据区(Data Area): 紧跟在FDT的下一个扇区,直到逻辑盘的结束地址。
由上图可以想到,即使目录被破坏仍旧可能从磁盘里把信息读出。
数据恢复主要是手动找出FAT、目录、数据的对应关系或直接找到数据,现在已经有完善的磁盘编辑器帮助我们做到这一点,使工作大大简化了。
有只能化的恢复工具能不依靠FAT而恢复被删除文件,比如RECOVERNT,估计是依靠Win2000的文件使用记录。这种方法在冲启动之前恢复文件的