2024年3月29日发(作者:)
Windows文件读写监控系统
摘要:21世纪,人类进入了一个全新的时代,一个以计算机技术为代表的信息时代。人们的生活节奏随着信息技术的快捷
方便而变快。在这次信息革命中谁拥有便捷的信息,谁就掌握了时代的命脉,占据技术的颠峰。在PC领域,称霸桌面的
Windows系统的垄断和不公开源代码,对我们研究更是带来很大困难。本程序的全称为Windows下的文件监视程序,是一
个工具软件。通过本程序的分析和设计,为创建更大的软件工程提供了一定的帮助。在逆向工程中,可以利用本程序,分析
进程的文件读写情况,对工程的开发提供了一定的帮助。本程序采用VC开发环境,利用DLL挂接,拦截API等技术实现
了对目标进程的文件读写监视
关键词:文件监视程序 工具软件 DLL挂接 拦截API
1.引言
1.1课题背景
以计算机为代表的信息技术在近几年在全世界得到了飞速的发展,在企事业单位计算机已经成为主要
的工作平台,在个人的日常生活中,计算机已经非常普及,就像普通家电那样。计算机技术的运用可以帮
助人们减轻负担,提高工作效率。然而我们国家计算机研究起步相对较晚,特别在PC领域,微软的windows
平台垄断了我们国家的绝大部分,再加上它的源代码的不公开,以及众多版本,给我国的平台研究更是带
来了很大的困难。
现在我们国家已经有一些公司和集体在研究操作系统。本程序是一个工具软件,它可以做为很多软件项
目的工具,可以在项目开发前期进行简单的构造。在设计本程序的时候,运用了很多热门技术,比如DLL
挂接和远线程注射等,在很多杀毒软件和防火墙软件中都有它们的身影。
1.2系统开发的目的和意义
本程序作为一个工具软件,之所以设计它,主要一方面出于学习研究一些热门技术,以及利用这些技
术能到达一个什么效果。它用到的技术,比如DLL挂接,API拦截,这些技术在很多杀毒软件等中运用的
很多。比如卡巴斯基,它在进程读写时进行拦截,获得读写文件的数据,再利用其杀毒引擎进行查杀病毒。
上面提到的拦截实际上是对文件读写API(比如ReadFile,WriteFile等)。很多游戏外挂利用远线程注射,
将木马DLL插入游戏进程空间内,一旦插入成功,它就能破坏进程的正常运行,甚至有的对游戏进程的
数据区进行搜索内帐号密码等信息,达到窃取帐号等目的。类似这些技术用处很大,几乎所有的市面上知
名的软件都有用到。
另一方面是其实用性。本小程序能拦截目标进程对文件的操作,并向用户报告,并且可以设置对目标
进程对文件只读,对一些重要数据可以起到一定的仿删除作用。比如一些病毒就专门破坏移动存储设备内
的文件,通过对对其设置只读就可以防止这类事情的发生。
1
1.3国内外概况
在国外技术环境相对较好,很多公司都对windows文件系统都有深刻的研究,并且开发了很多文件过
滤驱动程序,他们的功能都类似,这些驱动都处于功能驱动之上,通过对某些IO请求包(IRP)的过滤,
实现一定的功能。由于驱动处在内核模式,因此这种方式功能非常强大,杀毒软件一般都在内核模式下监
视进程的文件操作,它最先收到进程的IRP,通过修改,抛弃IRP,很容易实现文件的监视效果。另一种
方法是在用户模式下监视,这种方法相对简单,它主要是拦截API,将API的头几个字节修改跳转指令,
使跳转的我们自己写的替换API中,这样一旦目标进程调用了该被修改的API,就跳到我们写的替换API
上了,通过修改传递进来的参数实现某些功能。
在国内,台湾的志远公司设计的还原精灵,它则是修改MBR,使它的程序先被执行,然后将之前保
存的FAT覆盖现在的FAT,到达文件系统的还原。内地的硬盘保护卡,则是采用文件过滤驱动方式。
2.应用技术
本程序作为一个工具软件,出于学习研究一些热门技术,以及利用这些技术能到达一个什么效果。用
到Visual C++开发语言,用到API,API HOOK,API拦截,DLL挂接等,这些技术在很多杀毒软件等中运
用的很多。
2.1 API
(1) API定义
API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用
程序与开发人员基于某软件或硬件的以访问一组编程的能力,而又无需访问源码,或理解内部工作机制的
细节。API函数包含在Windows系统目录下的动态链接库文件中。
(2) Windows API
Windows API是一套用来控制Windows的各个部件的外观和行为的一套预先定义的Windows函数。
用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。
更易理解地说:Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理系统资源之外,
它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用
程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序, 所以便称
之为Application Programming Interface,简称API 函数。凡是在 Windows 工作环境底下执行的应用程式,
都可以调用Windows API。
(3) API 分为四种类型
远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务),实现程序间的通信。
标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。
文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。
信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。
2


发布评论