小议文件保护和锁定技术
来源:互联网 发布:h3c将端口划分vlan 编辑:程序博客网 时间:2024/05/21 10:10
近1年来互连网上的木马越来越多,有的还删除不掉,要切换到dos才可行,如:CNNC,3721等,实现技术也五花八门,但就文件不可删除的实现技术可分三类:
1 Attach file system; 这种技术和Filemon/sfilter查不多,就是挂一个filter驱动到fs上,其他函数都是passthru下去,只处理IRP_MJ_SET_INFORMATION,当发现有删除需保护文件的IRP,就
Irp->IoStatus.Status = STATUS_SUCCESS;
Irp->IoStatus.Information = 0;
IoCompleteRequest(Irp, IO_NO_INCREMENT);
更本不让Fs去处理,从而达到文件不可删除的作用!
有什么方法可以删除呢?自己写个驱动自己填充irp包(见OSR文档Rolling Your Own),直接发送IRP到File System Device上去就ok啦!
2 修改file system的dispatch函数表; 首先得到Fs的DriverObject(根据驱动名得到驱动设备对象(ObReferenceObjectByName (IoDriverObjectType))),pDriverObject->MajorFunction [IRP_MJ_SET_INFORMATION] = MySetInformation,然后再MySetInformation中再调用原来的调度函数,类似于HookApi;发现有删除
需保护文件的IRP,就直接IoCompleteRequest,更本不让原来的FsSetInformation处理!
有什么方法可以删除呢?自己写个驱动来修复Fs的dispatch函数表,读Fs的原始文件,根据PE文件得到Fs的Entrypoint, dispatch函数表的填充都在EntryPoint后面,我们可以根据Opcode查找,XX XX XX XX就是我们要找的dispatch的原始地址;找到后pDriverObject->MajorFunction [IRP_MJ_SET_INFORMATION] = XX XX XX XX,然后就能删除文件啦!
FunOpc=MajorFunction*4+0x38
C7 46 FunOpc[<80] XX XX XX XX mov dword ptr [esi+50h], offset _NtfsFsdSetInformation
C7 86 FunOpc[>=80] XX XX XX XX
C7 43 FunOpc[<80] XX XX XX XX mov dword ptr [ebx+50h], offset _NtfsFsdSetInformation
C7 83 FunOpc[>=80] XX XX XX XX
3 通过ZwCreateFile把文件锁定;删除时报告“文件正在使用,禁止删除”,具体原理自己摸索吧,反正是通过ZwCreateFile实现的!
有什么方法可以删除呢?
step1 :通过QuerySystemInformation(SystemHandleInformation)得到当前系统的所有句柄信息
step2 :遍历当前所有进程,根据进程ID,得到此进程打开的所有句柄信息
Step3 :把句柄发送给我们的驱动程序,驱动程序根据ObQueryNameString得到句柄的路径信息,然后再传给我们的应用程序
Step4 :如果是我们要删除文件的路径,应用程序调用DuplicateHandle(DUPLICATE_CLOSE_SOURCE),句柄被关闭了,现在可以删除文件了!
注:QuerySystemInformation的使用说明见The Undocumented Functions,或者http://undocumented.ntinternals.net,第三种解除文件锁定的方法是我反汇编Unlock软件学习到的
- 小议文件保护和锁定技术
- 小议文件保护和锁定技术
- (原创工具)CnCrypt 文件保护工具,强力隐藏和锁定文件或文件夹,单文件绿色版
- 文件地理数据库和锁定
- 小议PE病毒技术
- 网站开发技术小议
- 保护眼睛:定时锁定电脑
- 文件锁定
- .c .h文件小议
- 还原系统保护技术原理和攻防
- Android 高级混淆和代码保护技术
- Android 高级混淆和代码保护技术
- Android 高级混淆和代码保护技术
- Android高级混淆和代码保护技术
- Android 高级混淆和代码保护技术
- Android 高级混淆和代码保护技术
- 小议程序员编写技术文档
- Foxit Reader2.2特别修改版,无视密码锁定和保护直接复制文档内容
- Allegro学习笔记 里程碑20070813
- Rootkit 1: Detection Hide Process
- 常用的一组API操作
- ORACLE SQL性能优化系列 (六)
- excel冻结窗格--冻结行列标题
- 小议文件保护和锁定技术
- Ring0Prolog
- ORACLE SQL性能优化系列 (七 )
- jboss配置入门(一)
- Windows内核调试器原理浅析
- 设计模式-工厂模式-工厂模式
- 使用集合
- C#调用非托管DLL的APIs
- 两种不同的存储过程调用方法