网站大量收购闲置独家精品文档,联系QQ:2885784924

用VXD技术实现的文件系统保护程序示例.docVIP

用VXD技术实现的文件系统保护程序示例.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
用VXD技术实现的文件系统保护程序示例 用VXD技术实现的文件系统保护程序示例 PAGE 用VXD技术实现的文件系统保护程序示例 用VXD技术实现的文件系统保护程序示例 要对Windows9x操作系统下的文件进行保护,只能通过驱动级开发来实现。通常情况下是写一个Installable File System Hook(IFSH,可安装文件系统挂钩程序)加载在系统中,然后在其中监控系统的文件操作。当发现系统在作你希望监控的操作时,进行你需要的操作(此时系统并没有进行实际的操作,你赶在了系统操作之前)。进行此项开发需要相应平台的IFS kit (可安装文件系统开发包),Windows9x的在它们的DDK中已经包含,但Windows NT和Windows 2000的IFS kit需要向微软购买(目前估价$6000,国内好象还没有,你自己找吧,看运气了)。 现在大部分杀毒软件号称的虚拟机技术就是我们将要介绍的基于IFS(可安装文件系统,下同)的文件系统操作技术。不同的是它们是在文件操作之前检查一下特征码,看有没有感染病毒,而我们所要作的是检查一下该文件是否允许存取,对它们作相应的保护。 下面我们以一个用于指定的文件的操作保护的程序为例介绍一下这种技术。 我们把它设计成为对磁盘(逻辑盘)、具体文件作相应保护的工具。为了简化起见,我们只启用了防删除保护。同样的原理你也可以自己扩充功能。 完整的源代码可以从以下网址下载: 并且在不断发展更新中,欢迎时常访问本站并更新你的代码。 本套程序包括后台VXD驱动程序和前台程序两个部分。 本程序开发环境如下: Windows 98 第二版 VC++ 专业版 VTOOLSD (DRIVERSTUDIO 中自带的) 后台VXD程序的生成和编写 我们用VXD辅助开发工具VTOOLSD 版本来生成程序框架。 设置一般选项 打开vtoolsd的Quick Vxd后将设备参数页作如下设置: 其中在设备名框中输入的”FILHOOK”将作为生成的设备名出现在系统中,你可以用Vtoolsd自带的 vxd viewer查看系统中加载的驱动程序,如果你已经成功加载此驱动程序,你将看到如下图所示的画面: 证明已经加载入系统中。 程序入口方式设置 一般情况下,我们在windows9x下加载的VXD驱动程序都必需使用”Protected Mode”保护模式方式。关于详细的说明,请参阅本专栏前面的文章中的介绍。 必需响应的系统消息 由于我们的驱动程序要求必需能动态加载,而且能够响应win32应用程序的控制,并与Win32前台程序交互作用,所以必需响应系统的如下三个消息 (由操作系统的虚拟机管理器VMM发给我们的驱动程序的系统通知消息) : SYS_DYNAMIC_DEVICE_EXIT :驱动程序动态卸载通知消息 SYS_DYNAMIC_DEVICE_INIT :驱动程序动态加载通知消息 W32_DEVICEIOCONTROL :WIN32设备输入输出控制消息(由win32前台程序发给VXD驱动程序的消息) 生成框架后,我们再加入自己的代码。 第一部分:实现文件定义。 IsIn=0; IsIn=1;Protype=driver-iProtype; } break; default: break; } return 0; } int _cdecl MyIfsHook(pIFSFunc pfn, int fn, int Drive, int ResType,int CodePage, pioreq pir) IsIn!=0) { WriteLog(logfile,由于该驱动器保护,以下文件不能被删除:); WriteLog(logfile,FileName); return 0; } FT *temp; for(temp=FILE;temp!=NULL;temp=FILE-Next) ,*.*); al(); m_filename=thName(); UpdateData(false); } void CAddFile::OnOK() { \,0,0,0,CREATE_NEW,FILE_FLAG_DELETE_ON_CLOSE,0); #endif // !defined(AFX_FP_H__33040F78_DC9C_11D4_9C4E_006008D4550A__INCLUDED_) // 以上是前台程序的实现,只列出了改动过的部分,完整的程序请看源程序包。欢迎大家下载研究并与我探讨。我的email:

文档评论(0)

认真对待 + 关注
官方认证
文档贡献者

该用户很懒,什么也没介绍

认证主体惠州市峰海网络信息科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441300MA54K6GY5Y

1亿VIP精品文档

相关文档