Electronic Joint Business

Solution for E-Business

编写 ScanX – 注册表清理工具

简介 理论上注册表只是一种树状数据库,用来存储操作系统和安装的组件的各种信息。最初,它的设计目的是只存储 COM 组件配置信息,后来为了减少.ini 文件的依赖,注册表逐渐成为外围应用程序存储的一种媒介,然后现在…似乎我们正朝着另一个方向,回到模块化的设计原则,将应用程序数据存储在该应用程序的程序集中。但是,无论如何,注册表在以后一段时间内仍将扮演 windows 操作系统中的核心要素。 那么注册表清理具体是做什么的?我真的需要自己写一个吗?注册表清理主要是做的事是路径测试,包括文件系统中的路径和注册表中的元素之间的联系。我所以会注意到这个,是因为这几年前,我碰巧需要清理注册表…朋友的电脑遇到了一个特别讨厌的病毒,这个病毒禁用了防病毒软件,并把自己提升到了系统级别的访问权限。我设法将其删除,但删除其组件后,网络就不再工作。该病毒已将自身插入网络堆栈,由于不知道这些注册表项是什么或是在哪,我需要一个注册表清洁器来帮助修复它。我用的那个清洁器马上就正确完成这个任务了(由于未购买这个工具,我不得不手动删除这些注册表项 …但也进而导致我写此应用程序的第一个版本)。它是从那时我开始研究匹配项并试图找出这些应用程序是如何工作,并开始了解各种不同的注册表项之间的复杂关系。 我打算用长篇累牍来介绍注册表的工作原理,网上有很多教程,维基百科的介绍就不错。我要做的是给你鸟瞰此应用程序是如何工作的,如果您要深入了解此应用程序,你需要进行认真的调试,并阅读每个类的注释… 通过 API 访问注册表 本应用程序的核心是注册表类 cLightning,我很多年前用 VB6 写的,并将其翻译到 C# 。通过该类,你可以访问到 advapi.dll 中的大多数数据类型和注册表 api。此外还有一大批像 RunAs、 ShellOpen、 Rot13、 和访问 escalation routines 的有用方法。 枚举数以十万计的注册表项需有 ‘极品飞车’ 的速度,因此内建的注册表方法是解决问题的最佳途径,(使用 PInvoke 获得了至少两倍的速度优势)。对于每种数据类型都有其独立的方法: /// <summary> /// Read Resource Descriptor data type /// </summary> /// <param name="RootKey">enum: root key</param> /// <param name="SubKey">string: named subkey</param> /// […]

, , ,

Leave a Reply

Your email address will not be published. Required fields are marked *

Time limit is exhausted. Please reload CAPTCHA.