您所在的位置: 首页 > 软件教程 > DllCache恢复原理和DllCache恢复工具

DllCache恢复原理和DllCache恢复工具

更新时间:2022-11-14 11:50:19 阅读: 作者:admin

类型:角色扮演 大小: 更新时间:1970-01-01
语言:简体中文 应用平台:Android
立刻下载
DllCache恢复原理和DllCache恢复工具 .NET调试扩展包SOSEX.DLL官方完整版 类型:编程控件大小:928KB语言:中文 评分:10.0 标签: 立即下载

DllCache恢复原理

由于DllCache目录中存储有系统文件的备份,总体积大概在200~400M,这给我们封装系统后控制系统映像体积方面制造了障碍,那我们能不能删掉它,并在系统部署时恢复它?为了解决这个问题,“DllCache恢复”应运而生。

1、传统DllCache恢复
前文已述,DllCache存储的是系统文件备份,那么这些系统文件肯定同时也是存在于系统目录中的,这就给了我们一个思路。我们恢复DllCache文件,源文件可以去当前系统寻找,而我们要去寻找哪些文件呢?这就需要我们在清空DllCache目录前记录一下这个目录里有哪些文件就可以了。我举例简单的说明一下:

(1)例如目前DllCache目录里有:a.sys、b.sys、c.dll三个文件,封装时清空DllCache目录前运行一个小程序,将这三个文件的名字记录下来,如记录在一个文本文件里。这个过程即所谓的“DllCache备份”。
(2)系统部署时的一个时机(常用系统部署中,注册组件时),DllCache恢复程序启动,读取(1)过程中用于记录DllCache目录下文件的文本文件,而后去系统目录寻找这些文件,再将找到的文件复制到DllCache目录。

简而言之,在传统DllCache恢复中,“DllCache备份”就是记录DllCache目录下有哪些文件,“DllCache恢复”就是按照记录将系统文件从系统目录复制到DllCache目录下。

2、新型DllCache恢复
这个功能的实现感谢天空曾经的编程大师:七猫(由于工作原因,现已退役)

由于传统的DllCache恢复必须执行“备份-->恢复”的过程,比较繁琐,万一忘记了执行备份过程,那恢复过程就是徒劳。七猫提出了不同的思路,如果能够读取系统函数,直接询问SFC它需要将哪些文件备份到DllCache目录,而后将SFC需要的文件全部复制到DllCache目录,这不是更好吗?这样就根本不需要“备份”过程,而且我们“恢复”出来的文件是SFC所需要的所有的文件。由于系统不同,精简的内容不同,甚至安装的驱动不同,都会造成SFC所需要备份的文件不完全一致,这种询问SFC需求并将需求实现的功能无疑是更加强大且更加完善的!

自由天空DllCacheRecover系列使用的即是七猫的实时询问系统需求并复制文件的原理。无需传统的DllCache备份过程,DllCacheRecover运行时会实时的询问SFC,并将需要的文件自动搜索与复制到DllCache目录。某些系统可能要恢复2000~2500个文件,而某些系统只需要恢复1500~2000个文件,DllCacheRecover都能够根据实际需要进行复制,精确度高,更贴近系统需求,不因额外的文件复制增加时间的消耗。

SFC与DllCache
(以下内容以Windows XP为准)SFC,即“系统文件保护”功能,是Windows XP的系统自带功能。正如其名,设计目的是为了保护系统重要文件。工作原理大致是这样的:SFC自动将系统重要文件,如“%SystemDrive%WindowsSystem32”下的某些.sys、.dll等文件,自动的复制到一个位置进行备份备份,如果发现系统重要文件被非法替换,则自动使用备份的文件覆盖非法替换的文件。SFC备份重要系统文件的位置为“%SystemDrive%WindowsSystem32DllCache”目录,即我们常说的“DllCache”。简而言之,SFC就是一个备份系统文件并在发现系统文件被非法窜改时自动恢复系统文件的功能,而存储系统文件备份的目录被叫做“DllCache”。

SFC的设计本意是好的,在XP诞生之初的确有效的遏制了某些窜改系统文件的病毒和恶意程序,但时过境迁,XP已经老了。SFC最大的失败就是可以在用户层就将其关闭。大家可能记得ES2就具备这样的功能,能够彻底的或暂时的关闭SFC功能。大家可以想一想,如果连一个封装工具都可以轻易的关掉SFC,那黑客们不会吗?病毒和木马的制造者们不会吗?就像一个加了锁的门,加锁是为了防盗,但这把锁的功能低到随便找个铁丝就能打开,那这把锁还有用吗?这扇门后的东西还安全吗?这也就是为什么很多人不使用SFC功能的一个重要原因。

当然,还有很多朋友趋向于使用SFC的,尽管它的功能薄弱,但很多朋友仍旧认为有总比没有的好。SFC是否开启其实是一个个人喜好问题,大家不要争执开启与关闭SFC哪个更好,只能说各有各的好处,且理由都不足以压倒对方。

其他知识:
1、怎么关闭SFC?
建议使用NLITE,在系统安装前就屏蔽掉XP的SFC功能。曾经流传的通过修改注册表的方法就可以关闭SFC是一个谬误。如果要关掉安装好的XP的SFC功能,需要修改注册表,破解1个文件,并将这个文件复制到DllCache目录下覆盖同名文件,具体方法这里不介绍,请大家善用百度和谷歌。

2、DllCache只是一个目录?
很多年的偏颇传承,很多人只知道DllCache而不知道SFC。其实DllCache只是SFC用于存放系统文件备份的文件夹而已,不要把它理解的过于神秘。

3、SFC可操作的功能?
打开cmd,输入“sfc /?”你将获得更多知识。

4、关闭了SFC后DllCache目录还有用吗?
无用,DllCache目录是为SFC而生的,没有了SFC功能,DllCache目录就成了垃圾

“DllCache恢复”是个经久不衰的话题,自由天空曾经发布过DllCacheRecover1.x系列,后来因倡导关闭SFC而停止了对此工具的修正与开发工作。如今仍发现有很多朋友坚持开启SFC功能,且鉴于大多数DllCache工具已经不再更新,为了让这部分朋友仍然可以享受高效准确的DllCache恢复功能,我决定重新开启DllCacheRecover系列的研发工作,定名为“DllCacheRecover2.x”系列。在使用此工具前,强烈建议您阅读一下有关SFC、DllCache以及DllCache恢复的相关知识内容。驾驭某个工具,必须掌握它的基本原理。

DllCacheRecover
1、DllCacheRecover使用了实时询问系统要求并执行DllCache恢复的方式,无需繁琐的DllCache备份过程,直接根据系统需要进行DllCache恢复。(原理楼上已述)
2、DllCacheRecover与系统部署过程兼容性高,理论上可于系统部署时任何时机调用,但强烈建议于“系统部署中”(即“注册组件时”)时机调用。
3、DllCacheRecover与注册组件过程融合度高,浑然一体。