请问谁知道怎么查看ie index.datt文件?

&&&&index.dat 查看
&index.dat 查看
该工具只可以知道别人用电脑上了哪些网站。只需要弄到index.dat文件即可。至于大家能从中得到什么,知道什么,这就自己看吧!^.^
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
VIP下载&&免积分60元/年(1200次)
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
关注并绑定CSDNID,送10个下载分
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
安全技术下载排行
您当前C币:0&&&可兑换 0 下载积分
兑换下载分:&
消耗C币:0&
立即兑换&&
兑换成功你当前的下载分为 。前去下载资源
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
index.dat 查看
所需积分:5
剩余积分:0
扫描微信二维码精彩活动、课程更新抢先知
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
index.dat 查看
剩余次数:&&&&有效期截止到:
你还不是VIP会员VIP会员享免积分 . 专属通道极速下载
VIP下载次数已满VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员
你的VIP会员已过期VIP会员享免积分 . 专属通道极速下载,请继续开通VIP会员您当前的位置: →
常用工具栏
查看并删除index.dat文件_Index.dat Suite 2.0.1.54绿色版
====== [下面软件真实下载地址列表] ======
[版权原因部分软件停止下载] ======
高速下载通道:
-查看index.dat文件
-删除index.dat文件
-查看并删除TemporaryInternetFiles(TIF)文件夹
-查看并删除Cookies
-查看并删除历史
-查看并删除临时文件
-查看并删除最近文档
-自动创建批处理文件在DOS下删除index.dat文件
-可以添加RunOnce注册表键值
-可以删除swap文件(仅Win9x)
-可以在删除文件后整理碎片
-完整的记录
本站提供查看并删除index.dat文件_Index.dat Suite 2.0.1.54绿色版软件免费下载,版权归原作者或公司所有。如有侵权,请与我们联系删除。
* 本站提供的软件我们都会尽可能测试再上传,都亲自运行过,同时通过卡巴斯基杀毒软件的验证,限于能力及系统等问题,无法保证所有软件都没有任何问题,如果您发现链接错误或其它问题,发email到zarong◎告诉我们,谢谢!
* 为了达到最快的下载速度,推荐使用或下载本站软件。为确保正常使用请用最新版来解压本站提供的软件!
* 为了网站可以继续发展下去,在不太影响大家的情况下还请给予点击站内广告。本站所有下载无需点击任何广告即可正常下载,由于部分是FTP下载,限制了同时连接数,因此还请使用下载工具尝试多一会连接时间。如果您发现下载链接错误,请点击谢谢!
* 站内提供的所有软件如包含破解及注册码均是由网上搜集,若无意中侵犯到您的版权利益,通知我们,我们会在收到信息一周内给予配合处理!
* 本站为非营利性站点,所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,将不对任何资源负法律责任。所有资源请在下载后24小时内删除。如果您觉得满意,请购买正版,唯有如此才能更好支持你所喜欢的软件更好发展!本站严厉谴责和鄙夷一切利用本站资源进行牟利的盗版行为!查看: 2488|回复: 4
真正把握Index.dat文件
该用户从未签到
一、理论篇
说到index.dat文件,相信老鸟都知道,在这里还是先作一个简单的介绍。
Index.dat是一个具有“隐藏”属性的文件,之所以加上引号是因为它不同于普通的隐藏文件,因为系统不直接显示index.dat文件,即使在文件夹选项中设置成了让系统显示所有文件和不隐藏受操作系统保护的文件,也同样看不到它们,但它们确实是存在的,例如打开一个CMD窗口,用DOS命令你就可以看到它们,如图一。
(44.85 KB)
文件的作用其实是一个保存了cookie、历史记录和IE临时文件中所记录内容的副本,所以即使你在IE中把这些内容都清除了,但index.dat文件中的记录还是存在。
位置(以windows server 2003为例):
C:\Documents and Settings\用户名\Cookies
C:\Documents and Settings\用户名\Local Settings\History\History.IE5
C:\Documents and Settings\用户名\Local Settings\Temporary Internet Files\Content.IE5
二、查看篇-Index.DAT File Viewer
如何查看里面记录了哪些内容呢?可用的软件很多,但最方便的莫过于Index.dat文件查看器了,汉化绿色版,运行界面如图二。
(52.87 KB)
从图中可以看到你浏览网页时的cookie/历史记录/临时文件(图例中我已除去实际记录)
三、终结篇-Privacy Defender
最后请出今天的主角,Privacy Defender,这是一款能够真正可以在不重启系统的情况下,擦除受系统保护的index.dat文件内容的软件。笔者尝试过几款清除 Index.dat文件的软件,有的根本就是假像,清除完成后用Index.dat文件查看器仍暴露无疑,而有的虽然可以清除,却需要重启系统?(那还用软件做什么?直接在DOS下编个批处理干掉不就完了?何况有时由于实际原因是不能重启的),这也是绝大多数Internet清除软件所不具有的能力。
下面笔者以Privacy Defender v7.0.3英文版讲述一下软件的具体使用。
安装后运行软件,非常简洁的界面,只有四个按钮,如图三。
(28.65 KB)
先打开Options,我们来设置一下,如图四。
(65.72 KB)
如果勾选了第四项Clear all IE files + all hidden index.dat files(清除所有IE文件及隐藏的Indes.dat文件),那么也就意味着前三项全部被选中,如果在公共场所,建议选择这项。
Favorites就是是否清空收藏夹,Location bar URLS是IE地址栏内容。
windows栏是针对系统的文档文件/临时文件/回收站的,而Media栏是针对WMP和REALONE两款播放器的记录文件的。
再来看一下Misc选项卡,是对软件的一些设置,如图五。
(53.15 KB)
exit on close 点击关闭时退出
run this program when windows starts 随windows启动
on start minimize to the system tray 软件启动时最小化
disable auto suggest 去除自动建议
set this home page 设置主页
上面的选项根本自己的实际情况选择保存,之后回到主界面,点击Erase(擦除)按钮,注意要关闭浏览器,OK。
还有一个有用的功能,Go TO URL,点击后界面如下,图六。
(33.59 KB)
这个功能可以让你浏览某个网站,而不被记录在index.dat文件中。
四、结束语
软件都很容易使用,没什么技术可言。写这篇软件教程,是想让大家用最简单的软件,达到自己想要的效果,水平有限,不正之处指正。
TA的每日心情难过 22:17签到天数: 1 天[LV.1]初来乍到
LZ是高手啊,来学习一下
该用户从未签到
这个功能可以让你浏览某个网站,而不被记录在index.dat文件中。 这句话有点强大,学习了
TA的每日心情怒 08:51签到天数: 88 天[LV.6]常住居民II
高手,平时都没注意过
该用户从未签到
本站联系方式:QQ:
Powered byindex.dat是什么文件?_电脑网络问题_土巴兔装修问答
index.dat是什么文件?
填写手机号码,获取预算明细
你的装修预算约
查看预算明细
0元卧室预算:
0元客厅预算:
0元厨房预算:
0元卫生间预算:
0元阳台预算:
0元其他预算:
*本价格为新房估算价格(半包,不含水电工程),旧房价格由实际工程量决定。
* 稍后装修管家将致电您,为您提供免费装修资询服务。
index.dat是什么文件?
请问下,index.dat是什么文件啊?谢谢
提问者:云彩静|
浏览次数:606|
提问时间: 16:00:00
热门活动:
已有7条答案
回答数:4550|被采纳数:88
深圳市中海外装饰设计工程有限公司
所有回答:&4550
DAT并不是一种标准文件。许多软件都使用这个扩展名,但文件含义不同。而许多数据分析软件也用这个扩展名保存数据。所以这要看具体的软件情况来定。DAT文件,可以按照扩展名来看就是DATA的意思,即数据文件,这类文件并没有进行绝对化的定义,例如VCD光盘中的DAT文件就可以用一般的视频播放器打开,而QQ的DAT文件中则存储了用户信息,是无法使用常规方式打开的,只有QQ程序可以访问。还有一些其他程序都有自己对DAT文件的定义,要通过其特殊的程序来打开与之相关联的DAT文件。
另外补充以下.index是站点建立的默认文档名..
回答数:2516|被采纳数:6
厦门巢尚装饰工程有限公司
所有回答:&2516
Index.dat文件随着浏览量的增加,会越来越大,Index.dat在增大到一定的程度的时候,会影响系统性能,因此定期删除Index.dat &&文件,对于提升系统性能来说还是有些必要。但是该文件按正常的删除文件方法删除Index.dat &&时,会提示文件正在使用而不能删除.这需要熟悉DOS的人进入纯DOS模式,然后进入相应目录手动删除,显得比较麻烦。 &&如果普通用户要想彻底干掉这些秘密,可以使用这个工具,这个软件并不是删除Index.dat &&文件,而是将Index.dat &&文件里面的记录给清空,从而达到清除上网记录、减小Index.dat &&文件体积的目的。 &&使用方法:非常简单,解压下载的文件后,直接启动Index.exe,稍等程序即列出了Index.exe &&里面的记录,勾选要删除的记录,单击工具栏中的删除按钮(按钮显示X)即可。
回答数:21141|被采纳数:140
杭州邦建建筑工程有限公司
所有回答:&21141
<p class="ask_one_p edit_ &&简介 &&编辑本段
在微软windows操作系统中,index.dat是一个由Internet &&Explorer和资源管理器创建的文件。这个文件的功能就像一个数据库,随系统启动。它的功能在于收集个人信息,就像网址,搜索字符串和最近打开的文件。它的职责就像数据库中的索引。当IE开启自动完成,每一个浏览过的网址将被收录进index.dat,IE浏览器据此匹配用户输入的字符。index.dat也同样存在于IE的历史纪录,缓存,和cookies. &&.dat是一个很常见的扩展名(甚至是不可读文件或者是非文本文件),所以你可能会遇到一个index.dat文件,但它并不是IE浏览器和windows的一部分。
2 &&争论 &&编辑本段
互联网隐私团体指出windows操作系统使用index.dat收集信息侵犯了个人隐私,主要的抱怨是index.dat不容易删除,因为开机后它们总是被使用(经常是资源管理器),同时,当文件增大到80MB以上后,浏览速度将明显变慢。
另一个争论是操作系统给了用户一种错误的感觉,当用户清空了缓存,临时文件夹,历史纪录文件夹。index.dat仍旧收集了所有浏览过的网址和cookies和一些临时文件,一些人最终发现是index.dat的问题。
然而,微软发言人说通过系统进入安全模式,index.dat可以被高级用户删除。因为操作系统在安全模式不使用index.dat.删除按钮或者deltree命令可以删除index.dat
初级用户可以通过一些软件来简单的删除index.dat
index.dat是一个具有“隐藏”属性的文件,它记录着通过浏览器访问过的网址、访问时间、历史记录等信息。实际上它是一个保存了cookie、历史记录和IE临时文件中所记录内容的副本,即使你在IE中把这些内容都清除了,但index.dat文件中的记录还是存在。
在Windows &&XP系统中的“Documents &&and &&Settings\\Cookies”、“Documents &&and &&Settings\\LocalSettings\Temp\History\History.IE5\MSHist101107”(会变化)、“Documents &&and &&Settings\\LocalSettings\Temporary &&Internet &&Files\Content.IE5”等文件夹中都存在着index.dat文件。
系统为了保密是不会让你直接看到这些地方的index.dat文件的,就算你在文件夹选项中设置成了让系统显示所有文件和不隐藏受操作系统保护的文件,也同样看不到也搜索不到它们。你可以试着进入IE的临时文件夹“Temporary &&Internet &&Files”,但在窗口地址栏的“Temporary &&Internet &&Files”后面手工加上“\Content.IE5”,便能发现该文件夹下面居然还有别的文件和文件夹,index.dat文件也是其中之一。
当我们浏览了相当多的网站后,这个文件的体积会越来越大,从数十KB增加到几十MB。
即使用户在IE中执行“删除脱机文件”、“清除历史记录”、“清除表单”等操作,在上述位置的index.dat文件也不会被删除。更让人恼火的是,如果你试图进入上述位置想人工删除它,系统会毫不客气地警告你“无法删除index:文件正被另一个人或程序使用。”到底谁在使用这个文件呢?答案就是系统自己。就算你重新启动系统且不打开任何程序窗口,同样无法用常规方法删除它。
3 &&问题 &&编辑本段
窥探你的上网记录
前面说过,即使在IE中执行了相关清理操作,index.dat文件中同样会保留着相关的网址信息,那么,如何通过这个文件来了解曾经造访过的网站呢?
要查看index.dat中的内容,我们可借助第三方软件来实现,如“INDEX.DAT &&Files &&Viewer”。
启动软件后,经过数秒钟的检索,它已经在窗口中显示出了以前的浏览记录-----网址和访问时间等信息都赫然在列。选中某个链接,还会在窗口右下方显示相关内容!
4 &&操作方式 &&编辑本段
清除index.dat中的“内容”
对于这个极可能泄露个人上网行为习惯的index.dat文件,很显然是不能被直接删除的,因为只要你登陆系统,隶属于你的账户下的此文件便会被系统使用。那么,真没办法赶走它吗?非也!这里提供两种方法。
1.在纯DOS模式下删除
如果你的Windows &&XP安装在FAT32分区中,则可利用启动光盘引导系统到纯DOS模式下(不是Windows &&XP的命令提示符窗口),然后进入index.dat所在目录中,用DEL命令来删除它,不过由于这个文件分散比较凌乱,因此有点麻烦。
注意:由于C:\Documents &&and &&Settings\等是长文件名,所以要转换为8.3格式才能正常进入目录。
2.用Tracks &&Eraser &&Pro来删除
手动进入各文件夹“干掉”index.dat文件肯定比较麻烦,再说了,如果系统没有安装在FAT32分区上就更不好办。最简单的方法还是使用专用的文件来完成这一“艰巨任务”。
虽然声称能删除index.dat的软件很多,但是,经过我多次测试,发现真正能有效删除index.dat中记录的上网痕迹的软件还是Tracks &&Eraser &&Pro,其他很多软件都有些夸大其辞,执行清除后使用前面介绍的“INDEX.DAT &&Files &&Viewer”仍然可以看到以前曾访问过的网址。
在Tracks &&Eraser &&Pro中,先单击“Eraser &&Settings”按钮进行设置,重点是检查IE标签下的项目设置(最好全选),尤其要确保勾选中“index.dat”。
单击“OK”后回到主界面,点“Erase &&Now”按钮。很快,软件将根据设置清理你的上网痕迹。
清理之后不妨测试一下效果:重新打开“INDEX.DAT &&Files &&Viewer”让它自动扫描。结果,软件忙碌了半天,在窗口中什么也不会列出来。和执行清理之前相比,你现在可以更放心了!
5 &&删除方式 &&编辑本段
如果你想彻底删除硬盘上所有的index.dat文件,建议使用专门的软件来删除,因为在硬盘的很多地方都有index.dat文件的存在,而且index.dat文件里面还包含若干个隐形文件夹。如果你是手动删除它们的话,可能会有漏网之鱼,而且可能会导致没有删除的index.dat在自身的基础上又自动复制产生index.dat文件,这样的话你的上网安全还是没有彻底的保证!所以本人建议你还是用软件删除比较稳当。软件大家可以参考我的一片教程:全面揭露泄密隐私的幕后黑手 &&全面认清Index.dat文件。
使用批处理删除Index.dat
想更加方便地删除Index.dat文件吗?
首先,创建一个txt文件,打开文件,将以下命令复制粘贴进文件里
FOR &&%%a &&IN &&( &&C: &&D: &&E: &&F: &&G: &&H: &&I: &&J: &&K: &&L: &&M: &&N: &&O: &&P: &&Q: &&R: &&S: &&T: &&U: &&V: &&W: &&X: &&Y: &&Z: &&) &&DO &&DEL &&/f/s/q/a &&%%a\Index.dat
最后,将后缀名改为bat,双击这个文件,最多15秒就运行完了,快吧!现在,系统就没有index.dat &&文件了!
回答数:26941|被采纳数:146
四川濎樽建筑装饰工程有限公司
所有回答:&26941
大家都知道,Index.dat文件随着浏览量的增加,会越来越大,Index.dat在增大到一定的程度的时候,会影响系统性能,因此定期删除Index.dat &&文件,对于提升系统性能来说还是有些必要。但是该文件按正常的删除文件方法删除Index.dat &&时
回答数:5859|被采纳数:7
合肥名冠装饰工程有限公司
所有回答:&5859
在微软windows操作系统中,index.dat是一个由Internet &&Explorer和资源管理器创建的文件。这个文件的功能就像一个数据库,随系统启动。它的功能在于收集个人信息,就像网址,搜索字符串和最近打开的文件。它的职责就像数据库中的索引。当IE开启自动完成,每一个浏览过的网址将被收录进index.dat,IE浏览器据此匹配用户输入的字符。index.dat也同样存在于IE的历史纪录,缓存,和cookies. &&.dat是一个很常见的扩展名(甚至是不可读文件或者是非文本文件)
回答数:2928|被采纳数:5
天津宝创装饰工程有限公司
所有回答:&2928
在微软windows操作系统中,index.dat是一个由Internet &&Explorer和资源管理器创建的文件。这个文件的功能就像一个数据库,随系统启动。它的功能在于收集个人信息,就像网址,搜索字符串,和最近打开的文件。它的职责就像数据库中的索引。简单来说,当IE开启自动完成,每一个浏览过的网址将被收录进index.dat,IE浏览器据此匹配用户输入的字符。index.dat也同样存在于IE的历史纪录,缓存,和cookies. && &&提示:.dat是一个很常见的扩展名(甚至是不可读文件或者是非文本文件),所以你可能会遇到一个index.dat文件,但它并不是IE浏览器和windows的一部分。你在上网时是用着的,肯定是无法删除的
回答数:15063|被采纳数:56
常州方明装饰工程有限公司
所有回答:&15063
大家都知道,Index.dat文件随着浏览量的增加,会越来越大,Index.dat在增大到一定的程度的时候,会影响系统性能,因此定期删除Index.dat &&文件,
已有 5 个回答
已有 5 个回答
已有 4 个回答
已有 7 个回答
已有 6 个回答
已有 3 个回答
已有 3 个回答
已有 3 个回答
已有 6 个回答
已有 3 个回答
我已阅读并接受
*&&请放心填写,您的隐私将被严格保密
填写您的手机号码,获取预算明细
你的装修预算约
查看预算明细
0元卧室预算:
0元客厅预算:
0元厨房预算:
0元阳台预算:
0元卫生间预算:
0元其他预算:
*本价格为新房估算价格(半包,不含水电工程),旧房价格由实际工程量决定。
*稍后装修管家将致电您,为您提供免费装修资询服务。
下载土巴兔APP
中国装修网软件开发资料(108)
一.&&&&&&&前言
注重上网隐私和安全的人在每次上网后都会清除上网痕迹——“删除cookies”、“删除掉上网的临时缓存文件”以及“删除上网历史”。你觉得这样,所有的一切都会被擦除掉了。但是如果有人告诉你:这是不够的,系统中还有一些地方保存了你的上网信息,你是不是感到很恐慌?——这就是系统中的index.dat文件。
Windows系统中会存在三个index.dat文件。它们分别用来保存IE上网的cookies、临时文件和上网历史的索引信息(现在知道为什么这些文件名字是index.dat了吧J)。根据Windows系统版本不同,这些文件在系统中的位置也是不尽相同的。
在Windows 95/98/Me/ NT中,index.dat一般会存放在下面的位置中:
C:/Windows/Cookies/index.dat
C:/Windows/History/History.IE5/index.dat
C:/Windows/Temporary Internet Files/Content.IE5/index.dat
而在Window2000/XP系统中,index.dat一般会存在于下面的位置中:
C:/Documents and Settings/&username&/Cookies/index.dat
C:/Documents and Settings/&username&/Local Settings/History/History.IE5/index.dat
C:/Documents and Settings/&username&/Local Settings
/Temporary Internet Files/Content.IE5/index.dat
这些index.dat文件是系统、隐藏的文件,它们不随IE浏览器中的cookies&#20540;、临时文件和历史记录的清除而删除——这就是它的可怕之处。下面来详细描述index.dat文件的结构。
二.&&&&&&&Index.dat文件结构
Index.dat文件分为两部分,头部分和条目(Entry)部分。
所谓头部分,顾名思义就是文件开始部分。它记录着这个文件的总的信息,如文件文件&#26684;式版本、大小、子文件夹等等。每个index.dat文件仅有一个头部分。
其余的部分都是条目部分。Index.dat中的各种类型的条目数据结构不同,不过每个条目的前8个字节结构相同,系统就是用这两个DWORD字段来区分条目类型的。
下面我们来具体分析一下各个部分:
1.& 头部分
index.dat的头部大小是固定的,为16K。其开始592个字节(0x250)为小(SMALL)的头部分。紧接着的空间是3948个DWORD,它用来作为分配MAP。数据结构如下:
struct CacheDir
&& DWORD nFileC
&& CHAR sDirName[8];
typedef struct _MEMMAP_HEADER_SMALL
TCHAR&&& FileSignature[28]; //”Client UrlCache MMF Ver 5.2”
&&& DWORD&&& FileS&&&&&&&& //index.dat文件的大小
&&& DWORD&&& dwHashTableO& //第一个哈希表的偏移
&&& DWORD&&& NumUrlInternalE
&&& DWORD&&& NumUrlEntriesA
& // DWORD&&& dwG // 无效数据,只在/Zp8编译使用
&&& LONGLONG CacheL
&&& LONGLONG CacheS
&&& LONGLONG ExemptU
&&& DWORD&&& nDirC&&&& //子目录个数
&&& CacheDir DirArray[32];&&&& //子目录名称
&&& DWORD&&& dwHeaderData[33];
} MEMMAP_HEADER_SMALL;
typedef struct _MEMMAP_HEADER : _MEMMAP_HEADER_SMALL
&&& DWORD AllocationBitMap[3948];
} MEMMAP_HEADER, *LPMEMMAP_HEADER;
2.& 各种条目结构
上文说过每个条目都是以同样结构的2个DWORD开始的,这个结构如下:
typedef struct FILEMAP_ENTRY
&&& DWORD dwS& //条目标识
&&& DWORD nB //条目占用多少个快(128字节)
} *LPFILEMAP_ENTRY;
dwSig用来标识各种类型的标识。
本条目空闲,只有此类条目没有nBlocks成员。
0xdeadbeef
URL&#20540;
关于各种条目的结构我们下面会详细说明。
nBlocks用来描述此条目所占用的块数。注意index.dat中的块大小为128字节。
2.1哈希表条目
现在开始说明各种类型的条目。为什么先要说哈希表呢?这是因为index.dat使用一个哈希表链来作为目录,从而能够快速找到指定名称的条目。
Index.dat文件中每个哈希表大小都不能超过一个内存分页,即不能超过4K大小。每个哈希表部分是由下面的结构开始的,同时系统也是利用了这个结构,将index.dat中所有的哈希表部分链接起来的。
struct HASH_FILEMAP_ENTRY : FILEMAP_ENTRY
DWORD dwN // 下一个哈希表偏移(0表示为最后一个)
&&&&&&&&&&&&&&&&& //偏移以index.dat文件第0字节为基地址。
&&& DWORD nB // 本哈希表的序列号。从0,1,2…….
紧接着这个结构就是一个哈希表,每个哈希表的关键是哈希函数,下面是这个哈希表的哈希函数:
PRIVATE DWORD HashKey (LPCSTR lpsz)
&&&&&&& DWORD
&&&&&&& BYTE c[4];
&&& Hash, Hash2;
&&& const static BYTE bTranslate[256] =
&&&&&&& 1, 14,110, 25, 97,174,132,119,138,170,125,118, 27,233,140, 51,
&&&&&&& 87,197,177,107,234,169, 56, 68, 30,& 7,173, 73,188, 40, 36, 65,
&&&&&&& 49,213,104,190, 57,211,148,223, 48,115, 15,& 2, 67,186,210, 28,
&&&&&&& 12,181,103, 70, 22, 58, 75, 78,183,167,238,157,124,147,172,144,
&&&&&&& 176,161,141, 86, 60, 66,128, 83,156,241, 79, 46,168,198, 41,254,
&&&&&&& 178, 85,253,237,250,154,133, 88, 35,206, 95,116,252,192, 54,221,
&&&&&&& 102,218,255,240, 82,106,158,201, 61,& 3, 89,& 9, 42,155,159, 93,
&&&&&&& 166, 80, 50, 34,175,195,100, 99, 26,150, 16,145,& 4, 33,& 8,189,
&&&&&&& 121, 64, 77, 72,208,245,130,122,143, 55,105,134, 29,164,185,194,
&&&&&&& 193,239,101,242,& 5,171,126, 11, 74, 59,137,228,108,191,232,139,
&&&&&&& 6, 24, 81, 20,127, 17, 91, 92,251,151,225,207, 21, 98,113,112,
&&&&&&& 84,226, 18,214,199,187, 13, 32, 94,220,224,212,247,204,196, 43,
&&&&&&& 249,236, 45,244,111,182,153,136,129, 90,217,202, 19,165,231, 71,
&&&&&&& 230,142, 96,227, 62,179,246,114,162, 53,160,215,205,180, 47,109,
&&&&&&& 44, 38, 31,149,135,& 0,216, 52, 63, 23, 37, 69, 39,117,146,184,
&&&&&&& 163,200,222,235,248,243,219, 10,152,131,123,229,203, 76,120,209
&&& // Seed the hash values based on the first character.
&&& Hash.c[0] = bTranslate[ *lpsz];
&&& Hash.c[1] = bTranslate[(*lpsz&#43;1) & 255];
&&& Hash.c[2] = bTranslate[(*lpsz&#43;2) & 255];
&&& Hash.c[3] = bTranslate[(*lpsz&#43;3) & 255];
&&& while (*&#43;&#43;lpsz)
&&&&&&& // Allow URLs differing only by trailing slash to collide.
&&&&&&& if (lpsz[0] == '/' && lpsz[1] == 0)
&&&&&&&&&&&
&&&&&&& Hash2.c[0] = Hash.c[0] ^ *
&&&&&&& Hash2.c[1] = Hash.c[1] ^ *
&&&&&&& Hash2.c[2] = Hash.c[2] ^ *
&&&&&&& Hash2.c[3] = Hash.c[3] ^ *
&&&&&&& Hash.c[0] = bTranslate[Hash2.c[0]];
&&&&&&& Hash.c[1] = bTranslate[Hash2.c[1]];
&&&&&&& Hash.c[2] = bTranslate[Hash2.c[2]];
&&&&&&& Hash.c[3] = bTranslate[Hash2.c[3]];
&&& return Hash.
经过这个函数产生的&#20540;,根据其低6位就是最终的数组行号(即相当于模64)。
由于解决冲突的方法是:对同一个哈希地址提供7个位置空间。于是呈现在我们&#30524;前是实际上就是一个横向7列、纵向64行的表结构:
从这样的表结构中,我们知道这个哈希表以64为模。每个表允许7个相同&#20540;,它们按顺序排列在一起。所以每个哈希表结构可以索引448(64×7)个条目。
下面就是每个元素的结构:
struct HASH_ITEM
&DWORD dwH& //哈希&#20540;,注意最后6位为0
DWORD dwO //指向的实体中的记录部分的偏移
&&&&&&&&&&&&&&&& //偏移以index.dat文件第0字节为基地址。
我们注意到了:数组元素的哈希&#20540;的低6为0。于是系统也是利用了这个特征,将这6位数用作了每个元素的&#26684;式表示:
#define HASH_BIT_NOTURL&& 0x0001& // 位0
#define HASH_BIT_LOCK&&&&& 0x0002& //位1
#define HASH_BIT_REDIR&&&& 0x0004& //位2
#define HASH_BIT_HASGRP&& 0x0008& //位3
#define HASH_BIT_MULTGRP& 0x0010& //位4
#define HASH_BIT_RESERVED 0x0020& //位5
// 上面的哈希&#20540;组合
#define HASH_UNLOCKED&&&&& 0& // URL条目,没被锁定
#define HASH_FREE&&&&&&&&&&& 1& // 空闲项,以前曾被使用过
#define HASH_LOCKED&&&&&&&& 2& // URL条目, 已锁定
#define HASH_END&&&&&&&&&&&& 3& // 空闲项,没被使用过
#define HASH_UNLOCKED_SLASH& 4& // URL entry, not locked, trailing slash redir
#define HASH_REDIR&&&&&&&&&& 5& // redirect entry
#define HASH_LOCKED_SLASH&& 6& // URL entry, locked, trailing slash redir
#define HASH_FLAG_MASK&&&&&& 7& // illegal, used to mask out hash flags
2. 2 URL条目
URL条目是使用的最多的条目。它的结构和LEAK条目的结构相同,如下:
struct IE5_URL_FILEMAP_ENTRY : FILEMAP_ENTRY
&&& LONGLONG LastModifiedT&&&&&& //最后修改时间
&&& LONGLONG LastAccessedT&&&&& //最后访问时间
&&& DWORD&&& dostExpireT&&&&&&&& //到期时间
&&& DWORD&&& dostPostCheckT
&&& DWORD&&& dwFileS&&&&&&&&&&&&& //硬盘缓存中的文件的大小
&&& DWORD&&& dwRedirHashItemO& // ask DanpoZ
&&& DWORD&&& dwGroupO
&&&&&&& DWORD& dwExemptD&& // for SIG_URL
&&&&&&& DWORD& dwNextL&&&&& // for SIG_LEAK
&&& DWORD&&& CopyS&&&&&&&& // 好像总是0x60
&&& DWORD&&& UrlNameO&& // URL名称偏移。基地址是本URL条目的开始地址
&&& BYTE&&&& DirI&&&&&&&&&& // 属于的子文件夹索引
&&& BYTE&&&& bSyncS&&&&&&& // automatic sync mode state
&&& BYTE&&&& bVerC&&&&&&& // 建立本ENTRY的CACHE的版本
&&& BYTE&&&& bVerU&&&&&&& // 升级本ENTRY的CACHE的版本
DWORD&&& InternalFileNameO //硬盘上文件名(不包括目录)字符串的偏移,
&&& &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&//基地址是本URL条目的开始地址。
&&& DWORD&&& CacheEntryT&&&&&&& //缓存类型
&&& DWORD&&& HeaderInfoO //从WEB服务器中取本文件时的返回的HTTP头部信息
&&& DWORD&&& HeaderInfoS& //和大小(注意包括最后的回车换行的)
&&& DWORD&&& FileExtensionO&&& // should be WORD
&&& DWORD&&& dostLastSyncT
&&& DWORD&&& NumA&&&&&&&&&&& // 存取次数(点击率)
&&& DWORD&&& NumR&&&&&&&&& // 引用次数
&&& DWORD&&& dostFileCreationT&& // 好像是ULONG?
2. 4& REDIR结构:
struct REDIR_FILEMAP_ENTRY : FILEMAP_ENTRY
&&& DWORD dwItemO& // offset to hash table item of destination URL
&&& DWORD dwHashV&& // destination URL hash value (BUGBUG: collisions?)
&&& char& szUrl[4];&&&&& // original URL, can occupy more bytes
2. 5 GLIST结构:
struct LIST_FILEMAP_ENTRY : FILEMAP_ENTRY
&&& DWORD dwN // offset to next element in list
&&& DWORD nB // sequence number for this block
三.&&&&&&&显示系统缓存信息
上面就是一个完整的index.dat文件的结构,利用这些结构我们就可以写出一个完整显示系统缓存信息的程序。这项非常琐碎的工作,于是微软专门提供了一个函数库——WinInet。利用这个库中的函数,程序员可以相当方便地取出系统中缓存中的信息。
关于WinInet库的使用方法网络上有很多文章,大家可以参阅。
1.& Exploring the URL Cache&(/shell/urlexplr.asp)
2.& Reading the Internet Explorer Cache&(/system/IECache.asp)
四.&&&&&&&工作原理
上面我们分析了index.dat文件的结构,那么系统在什么时候读写这个文件的信息呢?
1.& COOKIES存取
在用户用IE浏览器上网时,当开始输入一个网址后,IE会根据输入的网址、用户名等信息组成一个字符串,将这个字符串作为参数到哈希函数中产生一个哈希&#20540;,然后查找具体的URL实体。如果能够找到,那么IE就会具体分析此URL实体指定的COOKIES.TXT文件,看是否已经过期,若已经过期则删除;否则将在IE生成的HTTP请求报文中加上一个cookies:××××××(×××就是.txt文件中的信息)这样的请求头部。
在IE浏览器收到的HTTP响应报文中若响应头部中包含有Set-cookies:×××××信息时,此时IE就会将这个COOKIES&#20540;保存在一个.txt文件中,并在index.dat文件中建立一个索引&#20540;。
2.& 临时的缓存文件存取
临时缓存文件是一种客户端缓存技术,它有利于节省网络带宽资源并能加快浏览速度。每次使用IE浏览器上网时,IE会发送一个请求报文要求传输一个文件(比如.htm文件、.jpg文件、.css文件等等)。WEB服务器响应请求,将所要求的文件传输给IE.。IE在显示这个文件的同时,会将它放到缓存目录中,并在Index.dat文件中添加索引。
等下次,IE要求传输相同的文件时,IE便会在index.dat中找到这个文件的记录了(当然,如果根本没有传输下载过,index.dat中是不会找到这个记录的)。IE先检查这个文件是否已经过期了(WEB服务器会在响应某些文件请求时,在HTTP响应报文中添加一个响应头部Age:×××××来明确表示这个文件在客户机上保存的时间)。如果没有过期,IE便会直接利用这个缓冲文件而不会发送HTTP请求报文的。
如果没有明确的过期时间或者已经过期来,IE便会在发送的HTTP请求报文中加上一条请求头部If_modified-since:××××。而WEB服务器发现所要求的文件并没有改变,它便会发送一个304Not Modified报文,而不再传输文件了。
3. 历史记录
历史记录只是用来保存曾经浏览过的网页的网址。它并不保存其他的一些信息。也不和发送/接受HTTP协议有关。所以比较简单。
五.&&&&&&&&&&&&举例说明
理论说了很多,下面来举一个例子。通过这个例子我们看看系统是这样使用使用index.dat来索引缓存的以及系统是怎样使用缓存的。
一台装有WEB浏览器的客户机,一台IP地址为90.0.0.6的IIS5的WEB服务器。服务器有一个名为test.asp的网页。test.asp包含一张图,并会设置一个cookies。
2.& 第一次调用网页
过程如下图所示:
具体的HTTP报文如下:
GET /test.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-
powerpoint, application/msword, */*
Accept-Language: en
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1)
Host: 90.0.0.6
Connection: Keep-Alive
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 26 Oct :45 GMT
X-Powered-By: ASP.NET
Content-Length: 903
Content-Type: text/html
Set-Cookie: name= expires=Wed, 30-May-:00 GMT; path=/
Set-Cookie: ASPSESSIONIDASARBACA=NOMPFILDEICPMBJBKCDGKGDC; path=/
Cache-control: private
GET /img/1.gif HTTP/1.1
Accept: */*
Referer: http://90.0.0.6/test.asp
Accept-Language: en
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1)
Host: 90.0.0.6
Connection: Keep-Alive
Cookie: name= ASPSESSIONIDASARBACA=NOMPFILDEICPMBJBKCDGKGDC
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
X-Powered-By: ASP.NET
Date: Thu, 26 Oct :45 GMT
Content-Type: image/gif
Accept-Ranges: bytes
Last-Modified: Sun, 15 Oct :58 GMT
ETag: &075bc:19f8&
Content-Length: 66806
我们再来看一下,index.dat文件有什么变化呢?
1)临时缓存文件
首先我们计算1.gif文件的HASH&#20540;。URL名称为:http://90.0.0.6/img/1.gif ,经过上文的HashKey计算得出结果:0x127F5346。于是我们在第一个HASH表的0X5000 &#43; 8 ×7 × (0x127F5346 & 0x3F)= 0x5150 开始查找:
h: 01 00 00 00 00 9F 03 00 01 00 00 00 00 FD 03 00 ; .....?......?.
h: 40 53 7F 12 80 66 00 00 40 E7 8F A7 80 F2 01 00 ; @S&#127;.EURf..@鐝&#59205;?.
h: C0 68 1D 59 80 1B 03 00 01 00 00 00 00 48 03 00 ; 纇.YEUR........H..
h: 01 00 00 00 00 6C 0E 00 01 00 00 00 00 93 03 00 ; .....l.......?.
h: 01 00 00 00 00 B6 03 00 C0 48 BE F4 00 D0 00&&& ; .....?.繦爵.?
发现5160h处就是我们要找的HASH_ITEM。于是我们在0X6680处找到我们要找的URL条目。
h: 55 52 4C 20 03 00 00 00 0075 BC 43 72 F0 C6 01 ; URL .....u糃r鹌.
h: 50 AC 0D 1D CC F8 C6 0100 00 00 0000 00 00 00 ; P?.跳?........
h: F6 04 01 0000 00 00 0000 00 00 0000 00 00 00 ; ?..............
h: 60 00 00 0068 00 00 0005011010
84 00 00 00 ; `...h.......?..
h: 41 00 00 0090 00 00 0082 00 00 0000 00 00 00 ; A...?..?......
h: 5A 35 49 3702 00 00 0000 00 00 005A
35 02 35 ; Z5I7........Z5.5
h: 00 00 00 00 0D F0 AD 0B 68 74 74 70 3A 2F 2F 39 ; .....瓠.http://9
h: 30 2E 30 2E 30 2E 36 2F 69 6D 67 2F 31 2E 67 69 ; 0.0.0.6/img/1.gi
h: 66 00 AD 0B 31 5B 31 5D 2E 67 69 66 00 F0 AD 0B ; f.?1[1].gif.瓠.
h: 48 54 54 50 2F 31 2E 31 20 32 30 30 20 4F 4B 0D ; HTTP/1.1 200 OK.
h: 0A 58 2D 50 6F 77 65 72 65 64 2D 42 79 3A 20 41 ; .X-Powered-By: A
h: 53 50 2E 4E 45 54 0D 0A 43 6F 6E 74 65 6E 74 2D ; SP.NET..Content-
h: 54 79 70 65 3A 20 69 6D 61 67 65 2F 67 69 66 0D ; Type: image/gif.
h: 0A 45 54 61 67 3A 20 22 30 37 35 62 63 34 33 37 ; .ETag: &075bc437
h: 32 66 30 63 36 31 3A 31 39 66 38 22 0D 0A 43 6F ; 2f0c61:19f8&..Co
h: 6E 74 65 6E 74 2D 4C 65 6E 67 74 68 3A 20 36 36 ; ntent-Length: 66
h: 38 30 36 0D 0A 0D 0A 7E 55 3A 71 67 6D 69 73 0D ; 806....~U:qgmis.
h: 0A 00 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B ; ..?.瓠..瓠..瓠.
h: 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B ; .瓠..瓠..瓠..瓠.
h: 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B ; .瓠..瓠..瓠..瓠.
h: 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B ; .瓠..瓠..瓠..瓠.
h: 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B ; .瓠..瓠..瓠..瓠.
h: 0D F0 AD 0B 0D F0 AD 0B 0D F0 AD 0B 0D F0&&&&&& ; .瓠..瓠..瓠..
分析这个结构,FILEMAP_ENTRY分析如下:
55 52 4C 20
02 00 00 00
此条目占据2×128=256个字节
IE5_URL_FILEMAP_ENTRY分析如下:
LastModifiedTime
75 BC 43 72 F0 C6 01
最后修改时间:
&11:54:58 PM
LastAccessedTime
50 AC 0D 1D CC F8 C6 01
最后存取时间:
&02:58:17 PM
dostExpireTime
00 00 00 00
dostPostCheckTime
00 00 00 00
dwFileSize
F6 04 01 00
硬盘缓存的文件大小0x104F6
dwRedirHashItemOffset
00 00 00 00
dwGroupOffset
00 00 00 00
dwExemptDelta
00 00 00 00
60 00 00 00
UrlNameOffset
68 00 00 00
URL地址保存在偏移为0X68即0X66E8的位置处。
(http://90.0.0.6/img/1.gif)
硬盘文件子目录序号为:05
bSyncState
bVerCreate
bVerUpdate
InternalFileNameOffset
84 00 00 00
硬盘缓存文件名保存在偏移为0X84即0X6704的位置处。
(1[1].gif)
CacheEntryType
41 30 00 00
HeaderInfoOffset
90 00 00 00
HTTP首部信息保存在偏移为0X90即0X6710的位置处。
(HTTP/1.1 200 OK
X-Powered-By: ASP.NET
Content-Type: image/gif
ETag: &075bc:19f8&
Content-Length: 66806
HeaderInfoSize
82 00 00 00
HTTP首部信息大小。
FileExtensionOffset
00 00 00 00
dostLastSyncTime
5A 35 49 37
最后同步时间为:
&02:58:18 PM
NumAccessed
02 00 00 00
NumReferences
00 00 00 00
dostFileCreationTime
5A 35 02 35
文件建立时间
我们用同样的方法分析test.asp在index.dat中保存成test[1].htm的索引信息。同样也可以分析cookies的index.dat的索引信息。
经过了一次访问后,IE会将所有的访问过的文件放入缓存中,并在index.dat作索引。待第二次访问同样的网页时,将会出现什么情况呢?
3.& 第二此调用网页
当我们再次浏览这个网页的时候。我们来看看发生了什么情况。
&下面是它们的HTTP报文信息。
GET /test.asp HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
Accept-Language: en
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1)
Host: 90.0.0.6
Connection: Keep-Alive
Cookie: name=xiaoming
HTTP/1.1 200 OK
Server: Microsoft-IIS/5.0
Date: Thu, 26 Oct :33 GMT
X-Powered-By: ASP.NET
Content-Length: 903
Content-Type: text/html
Set-Cookie: name= expires=Wed, 30-May-:00 GMT; path=/
Set-Cookie: ASPSESSIONIDASARBACA=OOMPFILDPDCEKPECJOOCPJEP; path=/
Cache-control: private
GET /img/1.gif HTTP/1.1
Accept: */*
Referer: http://90.0.0.6/test.asp
Accept-Language: en
Accept-Encoding: gzip, deflate
If-Modified-Since: Sun, 15 Oct :58 GMT
If-None-Match: &075bc:19f8&
User-Agent: Mozilla/4.0 ( MSIE 6.0; Windows NT 5.1; SV1)
Host: 90.0.0.6
Connection: Keep-Alive
Cookie: name= ASPSESSIONIDASARBACA=OOMPFILDPDCEKPECJOOCPJEP
HTTP/1.1 304 Not Modified
Server: Microsoft-IIS/5.0
Date: Thu, 26 Oct :33 GMT
X-Powered-By: ASP.NET
ETag: &075bc:19f8&
Content-Length: 0
我们发现第二次访问时,1.gif文件根本不需要再次传输。因为服务器端这个文件根本没有变化过。于是IE就直接从index.dat索引文件中找到1.gif文件保存在硬盘上的位置后,就直接使用它了——这就是系统使用缓存的最终目的了。
4.& 题外话
说说上面这些报文的一些题外话。
1)& 每次请求一个ASP网页时,WEB服务器都会回应一个有ASPSEEIONID×××的cookies报文,ASP.DLL就是使用这个ASPSESSIONID来管理Session对象的——即使我们在asp文件中根本就没有使用这个对象。
2)& 每次这个ASPSESSSIONID不会保存在硬盘上,它是存在IE浏览器的内存中,并且有时间期限。关闭IE或者过期后,将不会再在下次请求报文中包含这个ASPSESSIONID cookies&#20540;。于是WEB服务器又返回和一个原来不同的新的SESSIONID&#20540;。
六.&&&&&&&总结
本文主要剖析了Windows中用来索引缓存文件、cookies文件和上文记录的Index.dat文件,并给了例题。本文主要在分析微软代码的基础的得出的,但是对于index.dat文件中的一些结构中的特殊字段不能正确得出其含义,非常遗憾,希望有爱好者能完成。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:29482次
排名:千里之外
转载:106篇
(1)(4)(3)(1)(7)(19)(5)(1)(5)(5)(5)(57)}

我要回帖

更多关于 ie index.dat 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信