黑客防线,在攻与防的对立统一中寻求突破!2001年创刊的黑客技术专业刊物!
plant

设为首页
收藏本站
联系我们
网站导航

黑客论坛 - 公共交流区 - 杂志相关 - 浏览 - 《如何InlineHook IoCallDriver来保护文件》一文的补遗
        您是本贴第 330 位浏览者 本版版主

帖子主题: 《如何InlineHook IoCallDriver来保护文件》一文的补遗

  • liuke_beeth
  • 等级: 黑客防线技术团队
  • 发贴: 16 贴
  • 货币: 0 金币
  • 积分: 506 分
  • 经验: 120 点
  • 体力: 2150 点
  • 注册: 2008-07-24
《如何InlineHook IoCallDriver来保护文件》一文的补遗
由于没有防止修改文件内容来删除文件,所以重新修改代码使其能防止修改文件内容来删除文件,由于代码上传不上去,所以把代码贴出来,希望大家对本人的文章提出更多的建议,谢谢大家!
修改源代码的部分如下,大家用它替换原文件的IsNeedProtect函数即可,重新编译就可以哪:

int IsNeedProtect(DEVICE_OBJECT *DeviceObject, PIRP Irp)
{
  NTSTATUS status;
  int nResult=FALSE;
  DRIVER_OBJECT *DriverObject=DeviceObject->DriverObject;
  WCHAR *pwsz=NULL;
  IO_STACK_LOCATION *sp;
  FILE_OBJECT *FileObject=NULL;
  
  status=STATUS_INVALID_PARAMETER;
  sp=IoGetNextIrpStackLocation(Irp);;
  

  switch(sp->MajorFunction)
  {
  case IRP_MJ_SET_INFORMATION:
  goto Continue11;
  
  case IRP_MJ_WRITE:
  goto Continue11;
  
  default:
  goto Exit00;
  }
  
  Continue11:
  FileObject=sp->FileObject;
  _try
  {
    pwsz=wcsrchr(DriverObject->DriverName.Buffer,L'\\');
        pwsz++;
        
        //判断Irp是不是发往ntfs和fastfat驱动的,不是则跳出
        if (_wcsnicmp(pwsz,L"ntfs",4)&&_wcsnicmp(pwsz,L"fastfat",7))
        {
        goto Exit00;
        }
        
   DbgPrint("IofCallDriver:Delete File:%ws\n",FileObject->FileName.Buffer);

   pwsz=wcsrchr(FileObject->FileName.Buffer,L'\\');
   if (pwsz!=NULL)
   {
   pwsz++;
   }
  

   if (!_wcsnicmp(pwsz,L"1234.txt",16))
   {
    Irp->IoStatus.Information=0;
        Irp->IoStatus.Status=STATUS_ACCESS_DENIED;
        IoCompleteRequest(Irp,IO_NO_INCREMENT);
        nResult=TRUE;
        goto Exit00;
   }

  }

  except(1)
  {
  goto Exit00;
  }

Exit00:
  return nResult;
}


本贴已被 作者2010-2-2 11:56:13 编辑过
2010-2-2 11:52:13
  • 键盘上的眼泪
  • 等级: 普通用户
  • 发贴: 3 贴
  • 货币: 0 金币
  • 积分: 120 分
  • 经验: 28 点
  • 体力: 235 点
  • 注册: 2008-01-10
Re:《如何InlineHook IoCallDriver来保护文件》一文的补遗
thank,楼主的代码正是我需要的。
2010-2-2 12:33:10
  • 无微不至
  • 等级: 普通用户
  • 发贴: 7 贴
  • 货币: 0 金币
  • 积分: 40 分
  • 经验: 40 点
  • 体力: 130 点
  • 注册: 2010-02-28
Re:《如何InlineHook IoCallDriver来保护文件》一文的补遗
不错啊~呵呵~
2010-2-28 11:58:45