Your Ad Here
首页 | 编程语言 | 网站建设 | 游戏天堂 | 冲浪宝典 | 网络安全 | 操作系统 | 软件时空 | 硬件指南 | 病毒相关 | IT 认证
软讯网络 > 网络安全 > 黑客技术 > 利用远程注册表加强系统安全(2)
【标  题】:利用远程注册表加强系统安全(2)
【关键字】:系统,远程,安全,注册表,系统安全
【来  源】:网络

利用远程注册表加强系统安全(2)

Your Ad Here begin
RegDBConnectRegistry (";Gunn"; , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";;
svName = ";CSDVersion";;
nvType = REGDB_STRING;

RegDBGetKeyValueEx (szKey, szName, nvType, svServicePackVersion, nvSize);
end;

  如果一切顺利的话,我们现在就能访问 Gunn 的注册表并抽取服务包级别。

   接下来,通过在 RegBConnectRegistry 命令中用表示其它两台机器的相应的名称替代“Gunn”,然后运行相同的过程;我们就可以抽取这两台机器的服务包级别。

  我们注意到,三次重复输入相同的代码效率很低,因此可以使用循环机制来轮流查询每台机器的注册表。需要输入的全部信息是每台机器的名称。这可以通过创建一个文本文件来完成,该文件中,每一行包含一个机器的名称。因此,假设我们已经创建了一个名为 machineList.txt 的文本文件,其中输入了我们希望查询的三台机器的名称,并将它保存在 C 盘的根目录下。现在我们可以进一步修改脚本以把这些机器名读取到一个列表结构中,并轮流连接到每台机器的注册表。

清单 3. 从多台机器中抽取服务包级别

begin
listMachines = ListCreate(STRINGLIST);
ListReadFromFile (listMachines, ";c:\\machineList.txt";);
nResult = ListGetFirstString (listMachines, svMachineName);
while (nResult != END_OF_LIST)
RegDBConnectRegistry (svMachineName , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";;
svName = ";CurrentVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (svKey, svName, nvType, svServicePackVersion, nvSize);
nResult = ListGetNextString (listMachines, svMachineName);
endwhile;
end;

  以上代码将从 machineList.txt 文件中读入一个机器名,连接到它的注册表,进行查询,然后继续移到在文本文件中命名的下一台机器。使用这种方法的优点是通过简单编辑 machineList.txt 文件中的名称,我们能非常容易地在审计过程中添加和除去机器。

输出信息

   到现在为止,您可能已经注意到当我们执行这些查询时,还没有产生任何输出。所以,现在我们来讨论确定表示输出结果的最好方法。我们团队决定把输出格式化为 XML 文件,因为这样使我们可以浏览检索到的信息,并且允许我们可能开发的任何其它应用程序利用这些数据。清单4 显示了用适当命名的标记生成的 XML 文件。

清单4. 从多台机器中抽取服务包级别并输出到 XML 文件

begin
CreateFile (nvFileHandle, ";C:\";, ";Audit.xml";);
WriteLine(nvFileHandle, ";<;?xml version=";1.0";?>;";);
WriteLine(nvFileHandle, ";<;audits&;gt;";);
listMachines = ListCreate(STRINGLIST);
ListReadFromFile (listMachines, ";c:\machineList.txt";);
nResult = ListGetFirstString (listMachines, svMachineName);

while (nResult != END_OF_LIST)
RegDBConnectRegistry (svMachineName , HKEY_LOCAL_MACHINE, 0 );
svKey = ";SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion";;
svName = ";CurrentVersion";;
nvType = REGDB_STRING;
RegDBGetKeyValueEx (svKey, svName, nvType, svServicePackVersion, nvSize);
WriteLine(nvFileHandle, ";<;MachineName&;gt;";);
WriteLine(nvFileHandle, ";<;ServicePack&;gt;"; + svCSDVersion+ ";<;/ServicePack&;gt;";
WriteLine(nvFileHandle, ";<;/MachineName&;gt;";);
nResult = ListGetNextString (listMachines, svMachineName);
endwhile;

WriteLine(nvFileHandle, ";<;/audits&;gt;";);
CloseFile(nvFileHandle)
end;
(未完待续)
利用远程注册表加强系统安全(3):【上一篇】
Perl的安全性监测:【下一篇】
【相关文章】
  • 利用远程注册表加强系统安全(3)
  • 利用远程注册表加强系统安全(4)
  • Windows 2000 格式化字符的安全问题
  • 提高系统安全的注册表修改秘籍
  • 操作系统安全防范简述Windows 2003篇
  • 操作系统安全防范简述:Windows XP篇
  • 操作系统安全防范简述:Windows 98篇
  • 认识系统端口 从容应对“冲击波”病毒
  • 安全始于密码
  • 无线安全与黑客
  • 【随机文章】
  • 搜索引挚项目(附源码)
  • 用IP不编号特性节约网络地址举例
  • embedded programming experience
  • What is &nbsp;? Is it needed?
  • 关于LIST(列表) 的作用(本文章主要用于端口限制方面)
  • 基于Equinox的又一个重量级产品--WAS V6.1
  • FreeMarker 设计指南2
  • 企业建站完全手册--背景音乐的运用
  • 利用XSL和ASP在线编辑XML文档
  • vs2005入门 之 定义类、创建及使用对象
  • 【相关评论】
    没有相关评论
    【发表评论】
    姓名:
    邮件:
    随机码*
    评论*
          
    |  首 页  |  版权声明  |  联系我们   |  网站地图  |
    CopyRight © 2004-2007 bbb软讯网络 All Rigths Reserved.