Windows文件读写监控系统
Windows文件读写监控系统

Windows文件读写监控系统摘要:21世纪,人类进入了一个全新的时代,一个以计算机技术为代表的信息时代。
人们的生活节奏随着信息技术的快捷方便而变快。
在这次信息革命中谁拥有便捷的信息,谁就掌握了时代的命脉,占据技术的颠峰。
在PC领域,称霸桌面的Windows系统的垄断和不公开源代码,对我们研究更是带来很大困难。
本程序的全称为Windows下的文件监视程序,是一个工具软件。
通过本程序的分析和设计,为创建更大的软件工程提供了一定的帮助。
在逆向工程中,可以利用本程序,分析进程的文件读写情况,对工程的开发提供了一定的帮助。
本程序采用VC开发环境,利用DLL挂接,拦截API等技术实现了对目标进程的文件读写监视关键词:文件监视程序工具软件DLL挂接拦截API1.引言1.1课题背景以计算机为代表的信息技术在近几年在全世界得到了飞速的发展,在企事业单位计算机已经成为主要的工作平台,在个人的日常生活中,计算机已经非常普及,就像普通家电那样。
计算机技术的运用可以帮助人们减轻负担,提高工作效率。
然而我们国家计算机研究起步相对较晚,特别在PC领域,微软的windows 平台垄断了我们国家的绝大部分,再加上它的源代码的不公开,以及众多版本,给我国的平台研究更是带来了很大的困难。
现在我们国家已经有一些公司和集体在研究操作系统。
本程序是一个工具软件,它可以做为很多软件项目的工具,可以在项目开发前期进行简单的构造。
在设计本程序的时候,运用了很多热门技术,比如DLL 挂接和远线程注射等,在很多杀毒软件和防火墙软件中都有它们的身影。
1.2系统开发的目的和意义本程序作为一个工具软件,之所以设计它,主要一方面出于学习研究一些热门技术,以及利用这些技术能到达一个什么效果。
它用到的技术,比如DLL挂接,API拦截,这些技术在很多杀毒软件等中运用的很多。
比如卡巴斯基,它在进程读写时进行拦截,获得读写文件的数据,再利用其杀毒引擎进行查杀病毒。
Windows系统中的系统性能监控方法

Windows系统中的系统性能监控方法作为一款广泛使用的操作系统,Windows系统的性能监控对于用户和系统管理员来说是非常重要的。
通过及时监控系统性能,可以及时发现并解决问题,提高系统的稳定性和性能。
本篇文章将介绍Windows系统中常用的性能监控方法,帮助读者全面了解和掌握系统性能监控技术。
一、任务管理器任务管理器是Windows系统自带的一个工具,它可以显示当前运行的进程和应用程序的相关信息,包括CPU使用率、内存占用、磁盘活动情况等。
通过任务管理器,用户可以实时监控系统的性能表现并进行相应的调整。
在任务管理器的“性能”选项卡中,用户可以查看系统的整体性能情况,包括CPU、内存、磁盘和网络的使用情况,以及实时监控各进程的资源占用情况。
二、性能监视器性能监视器是Windows系统中的另一个强大的性能监控工具。
通过性能监视器,用户可以详细监控系统的各项性能指标,如CPU利用率、内存使用情况、磁盘I/O速度等。
在性能监视器中,用户可以通过添加不同的计数器来监控不同的性能指标,并可以根据需要设置监控的时间间隔和显示方式。
性能监视器提供了丰富的性能统计信息,帮助用户深入了解和分析系统的性能状况。
三、资源监视器资源监视器是Windows系统中一个专门用于监控系统和应用程序资源使用情况的工具。
通过资源监视器,用户可以实时监控CPU、内存、磁盘和网络的使用情况,并可以通过图形化界面查看各进程的详细信息。
资源监视器提供了功能强大的筛选和排查工具,可以帮助用户快速定位和解决资源占用过高的问题,提高系统的性能和响应速度。
四、事件查看器事件查看器是Windows系统中一个用于查看系统事件和日志的工具。
通过事件查看器,用户可以查看系统的警告、错误和信息等事件,帮助用户及时发现和解决系统问题。
事件查看器可以根据不同的事件类型和关键字进行筛选和查询,用户可以根据需要设置事件的级别和保存方式。
事件查看器提供了丰富的事件信息和详细的日志记录,有利于用户对系统性能进行追踪和分析。
Windows CMD命令中的系统性能监控方法

Windows CMD命令中的系统性能监控方法在Windows操作系统中,CMD命令是一种非常重要的工具,它可以帮助我们完成许多任务。
除了常见的文件操作和网络配置之外,CMD命令还可以用于系统性能监控。
本文将介绍一些常用的CMD命令,帮助读者了解如何使用CMD命令来监控系统的性能。
1. 查看系统信息首先,我们可以使用"systeminfo"命令来查看系统的基本信息。
该命令可以显示操作系统的版本、安装日期、计算机名称、处理器信息等。
通过查看系统信息,我们可以了解系统的一般情况,为后续的性能监控做好准备。
2. 监控CPU使用率要监控系统的CPU使用率,可以使用"wmic cpu get loadpercentage"命令。
该命令会显示当前CPU的使用率百分比。
如果CPU使用率较高,可能意味着有一些应用程序或进程正在占用大量的CPU资源,需要进一步调查和处理。
3. 查看内存使用情况内存是计算机系统中的重要组成部分,了解内存的使用情况对于系统性能的监控至关重要。
使用命令"wmic OS get FreePhysicalMemory"可以查看系统当前可用的物理内存大小。
此外,使用"wmic OS get TotalVisibleMemorySize"命令可以查看系统总的可见内存大小。
通过比较这两个值,我们可以计算出系统当前的内存使用率。
4. 监控磁盘空间磁盘空间的监控对于系统的正常运行至关重要。
通过使用命令"wmic logicaldisk get size,freespace,caption",我们可以查看系统中各个磁盘分区的总空间、可用空间以及分区的标识。
通过比较总空间和可用空间,我们可以计算出磁盘的使用率,从而判断是否需要进行磁盘清理或者扩容操作。
5. 监控网络连接网络连接的监控可以帮助我们了解系统的网络状况。
ntfs log tracker 用法-概述说明以及解释

ntfs log tracker 用法-概述说明以及解释1.引言1.1 概述概述部分的内容可以如下所示:NTFS日志追踪是一种用于跟踪和记录NTFS文件系统操作的技术。
NTFS(New Technology File System)是Windows操作系统中常用的文件系统,它提供了较高的性能和可靠性,并支持许多高级功能,如文件和目录的访问控制、加密、压缩等。
随着计算机系统的不断发展和进步,文件系统的安全性和稳定性变得越来越重要。
NTFS日志追踪作为一种重要的安全功能,可以帮助我们识别和跟踪任何对文件系统进行的更改,包括文件的创建、修改、删除等。
NTFS日志追踪可以记录各种重要的操作和事件,以帮助系统管理员和安全专家进行故障排除、安全审计和恢复操作等。
通过分析NTFS日志,我们可以获取有关文件系统的详细信息,包括文件的访问时间、修改时间、当前权限设置等。
此外,NTFS日志还可以用于监控和检测潜在的安全威胁,如未经授权的文件访问、文件删除或篡改等。
使用NTFS日志追踪功能也有助于提高系统的可用性和可维护性。
通过检查NTFS日志,管理员可以了解文件系统中的错误和异常情况,并采取相应的措施来修复或纠正这些问题。
此外,NTFS日志还可以帮助恢复意外删除或丢失的文件,以及防止数据丢失。
在本文中,我们将详细介绍NTFS日志追踪的概念和作用,以及如何有效地使用它来提高系统的安全性和性能。
我们还将展望NTFS日志追踪的未来发展,并探讨可能的改进和扩展。
通过深入了解NTFS日志追踪的用法,读者将能够更好地理解和应用这一重要的文件系统技术。
1.2 文章结构文章结构部分是为了介绍本篇文章的结构和组织,让读者了解整篇文章中各个部分的内容和主要论点。
本文的结构如下:第一部分为引言,旨在引入文章主题并概述整篇文章的内容。
我们将首先介绍本文的概述,即对于NTFS日志追踪的简要说明。
然后,我们将介绍文章的结构,即各个部分的组织方式和顺序。
《Windows驱动开发技术详解》之读写操作

《Windows驱动开发技术详解》之读写操作缓冲区⽅式读写操作设置缓冲区读写⽅式:读写操作⼀般是由ReadFile和WriteFile函数引起的,这⾥先以WriteFile函数为例进⾏介绍。
WriteFile要求⽤户提供⼀段缓冲区,并且说明缓冲区的⼤⼩,然后WriteFile将这段内存的数据传⼊到驱动程序中。
这种⽅法,操作系统将应⽤程序提供缓冲区数据直接复制到内核模式的地址中。
这样做,⽐较简单的解决了将⽤户地址传⼊驱动的问题,⽽缺点是需要在⽤户模式和内核模式之间复制数据,影响了效率。
在少量内存操作时,可以采⽤这种⽅法。
拷贝到内核模式下的地址由WriteFile创建的IRP的AssociatedIrp.SystemBuffer⼦域记录。
下⾯的代码演⽰了如何利⽤缓冲区⽅式读取设备,这个例⼦中,驱动程序负责向缓冲区中填⼊了数据:应⽤层调⽤ReadFile,想驱动传送⼀个读IRP请求:1int main(){2 HANDLE hDevice =3 CreateFile("\\\\.\\HelloDDK",4 GENERIC_READ | GENERIC_WRITE,50, NULL,6 OPEN_EXISTING,7 FILE_ATTRIBUTE_NORMAL,8 NULL);9if (hDevice == INVALID_HANDLE_VALUE){10 printf("Open device failed!\n");11 }12else{13 printf("Open device succeed!\n");14 }15 UCHAR buffer[10];16 ULONG ulRead;17 BOOL bRet = ReadFile(hDevice, buffer, 10, &ulRead, NULL);18if (bRet){19 printf("Read %d bytes!", ulRead);20for (int i = 0; i < (int)ulRead; i++){21 printf("%02X", buffer[i]);22 }23 printf("\n");24 }25 CloseHandle(hDevice);26 system("pause");27return0;28 }运⾏之后的结果如下:创建⼀个虚拟设备模拟⽂件读写:读、写派遣函数如下:1 NTSTATUS HelloDDKDispatchRead(PDEVICE_OBJECT pDevObj, PIRP pIrp){2 UNREFERENCED_PARAMETER(pDevObj);3 DbgPrint("Enter dispach read!\n");4 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;5 NTSTATUS status = STATUS_SUCCESS;6 PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(pIrp);7//得到要读取的数据的长度8 ULONG ulReadLength = stack->Parameters.Read.Length;9 ULONG ulReadOffset = (ULONG)stack->Parameters.Read.ByteOffset.QuadPart;10if (ulReadOffset + ulReadLength > MAX_FILE_LENGTH){11 status = STATUS_FILE_INVALID;12 ulReadLength = 0;13 }14else{15 memcpy(pIrp->AssociatedIrp.SystemBuffer, pDevExt->buffer + ulReadOffset, ulReadLength);16 status = STATUS_SUCCESS;17 }18 pIrp->IoStatus.Status = status;19 pIrp->rmation = ulReadLength;20//memset(pIrp->AssociatedIrp.SystemBuffer, 0x68, ulReadLength);21 IoCompleteRequest(pIrp, IO_NO_INCREMENT);22return status;23 }2425 NTSTATUS HelloDDKDispatchWrite(PDEVICE_OBJECT pDevObj, PIRP pIrp){26 UNREFERENCED_PARAMETER(pDevObj);27 NTSTATUS status = STATUS_SUCCESS;28 PDEVICE_EXTENSION pDevExt = (PDEVICE_EXTENSION)pDevObj->DeviceExtension;29 PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(pIrp);30 ULONG ulWriteLength = stack->Parameters.Write.Length;31 ULONG ulWriteOffset = (ULONG)stack->Parameters.Write.ByteOffset.QuadPart;32if (ulWriteOffset + ulWriteLength > MAX_FILE_LENGTH){33 status = STATUS_FILE_INVALID;34 ulWriteLength = 0;35 }36else{37 memcpy(pDevExt->buffer + ulWriteOffset, pIrp->AssociatedIrp.SystemBuffer, ulWriteLength);38 status = STATUS_SUCCESS;39if (ulWriteLength + ulWriteOffset > pDevExt->file_length){40 pDevExt->file_length = ulWriteLength + ulWriteOffset;41 }42 }43 pIrp->IoStatus.Status = status;44 pIrp->rmation = ulWriteLength;45 IoCompleteRequest(pIrp, IO_NO_INCREMENT);4647return status;48 }再在R3添加⼊代码:1 UCHAR buffer[10];2 memset(buffer, 0x66, 10);3 ULONG ulRead;4 ULONG ulWrite;5 BOOL bRet = WriteFile(hDevice, buffer, 10, &ulWrite, NULL);6if (bRet){7 printf("Write %d bytes!\n", ulWrite);8 }910 bRet = ReadFile(hDevice, buffer, 10, &ulRead, NULL);11if (bRet){12 printf("Read %d bytes!", ulRead);13for (int i = 0; i < (int)ulRead; i++){14 printf("%02X", buffer[i]);15 }16 }17 printf("\n");运⾏,得到结果:如果我们要查询⽂件信息,没有注册IRP_MY_QUERY_INFORMATION的派遣函数时,GetFileSize会正常返回读到的⽂件的⼤⼩:但是,因为GetFileSize读取的是⽂件的⼤⼩,⽽这⾥传递的是设备对象的句柄,本来是读不到⼤⼩的,但是如果利⽤驱动对IRP进⾏修改,再返回给R3层,就可以得到了:其派遣函数代码如下:R3层添加代码:1 bRet = GetFileSizeEx(hDevice, &dwFileSize);2 printf("File size is %u\n", dwFileSize);直接⽅式读写操作与缓冲区⽅式读写设备不同,直接⽅式读写设备,操作系统会将⽤户模式下的缓冲区锁住。
Windows的系统性能监控

Windows的系统性能监控Windows操作系统是目前广泛应用于个人计算机的操作系统之一,其强大的性能监控功能能够帮助用户了解和优化系统运行状态。
本文将介绍Windows系统性能监控的基本原理、常用工具和技巧,以帮助读者更好地监控和维护自己的电脑。
一、性能监控的重要性在使用Windows操作系统的过程中,我们经常会遇到电脑运行缓慢、卡顿或者出现错误提示等问题。
这些问题可能是由于硬件故障、软件冲突、系统负载过重等原因引起的。
而通过Windows的系统性能监控功能,我们可以及时发现系统的问题,采取相应的措施来解决它们。
因此,了解和使用系统性能监控是每个Windows用户必备的技能。
二、性能监控的基本原理Windows系统性能监控的基本原理是通过收集和分析系统运行时的各项指标数据来评估系统性能。
这些指标包括CPU利用率、内存使用情况、磁盘活动、网络传输速度等。
监控工具通过不断采样这些指标,并将其以图表或者报表的形式展现给用户,帮助用户了解系统的运行情况。
三、常用的性能监控工具1. 任务管理器Windows系统自带的任务管理器是一个简单实用的性能监控工具。
通过按下Ctrl+Shift+Esc键可以快速打开任务管理器。
在“性能”选项卡中,我们可以看到CPU、内存、磁盘和网络的使用情况,以及各个进程的资源占用情况。
任务管理器的优点是易于操作,适合快速了解系统性能。
2. 性能监视器性能监视器是Windows系统提供的高级性能监控工具,可以提供更加详细的性能数据和分析功能。
在开始菜单中搜索“性能监视器”即可找到。
性能监视器可以实时监控系统的各项性能指标,并提供图表分析功能,帮助用户更好地了解系统的性能状况。
3. 第三方性能监控工具除了系统自带的工具之外,还有很多第三方性能监控工具可以选择。
例如,Process Explorer、HWiNFO、SpeedFan等工具可以提供更加全面的性能监测和分析功能,满足不同用户的需求。
MCGS概述

MCGS的简介MCGS (Monitor and Control Generated System,通用监控系统)是一套用于快速构造和生成计算机监控系统的组态软件,它能够在基于Microsoft的各种32位Windows平台上运行,通过对现场数据的采集处理,以动画显示、报警处理、流程控制和报表输出等多种方式向用户提供解决实际工程问题的方案,它充分利用了Windows图形功能完备、界面一致性好、易学易用的特点,比以往使用专用机开发的工业控制系统更具有通用性,在自动化领域有着更广泛的应用。
MCGS的主要特点和基本功能如下:●简单灵活的可视化操作界面。
MCGS采用全中文、可视化、面向窗口的开发界面,符合中国人的使用习惯和要求,以窗口为单位,构造用户运行系统的图形界面,使得MCGS的组态工作既简单直观,又灵活多变。
用户可以使用系统的缺省构架,也可以根据需要自己组态配置,生成各种类型和风格的图形界面,包括DOS风格的图形界面、标准Windows风格的图形界面以及带有动画效果的工具条和状态条等。
●实时性强、良好的并行处理性能。
MCGS是真正的32位系统,充分利用了32位Windows操作平台的多任务、按优先级分时操作的功能,以线程为单位对在工程作业中实时性强的关键任务和实时性不强的非关键任务进行分时并行处理,使PC机广泛应用于工程测控领域成为可能。
例如MCGS在处理数据采集、设备驱动和异常处理等关键任务时,可在主机运行周期时间内插空进行像打印数据一类的非关键性工作,实现并行处理。
●丰富、生动的多媒体画面。
MCGS以图像、图符、数据、曲线等多种形式,为操作员及时提供系统运行中的状态、品质及异常报警等有关信息;用变化大小、改变颜色、明暗闪烁、移动翻转等多种手段,增强画面的动态显示效果;对图元、图符对象定义相应的状态属性,实现动画效果。
MCGS还为用户提供了丰富的动画构件,每个动画构件都对应一个特定的动画功能。
MCGS还支持多媒体功能,使能够快速地开发出集图像、声音、动画等于一体的漂亮、生动的工程画面。
WindowsMobile文件监控系统的设计与实现

收稿日期:2009-03-26;修回日期:2009-05-15。
基金项目:国家自然科学基金资助项目(60574078);广东省自然科学基金资助项目(31454);广州市科技计划应用基础项目(2006J12C0321)。
作者简介:谢泽科(1983-),男,广东潮州人,硕士研究生,主要研究方向:最优化算法、手机软件设计; 胡劲松(1969-),男,湖南湘潭人,副教授,博士,主要研究方向:人工智能、最优化算法。
文章编号:1001-9081(2009)09-2534-03W indo wsMobile 文件监控系统的设计与实现谢泽科,胡劲松(华南理工大学计算机科学与工程学院,广州510006)(xiezeke@ )摘 要:分析了W indowsMobile 的文件系统,研究了W indowsMobile 系统应用程序接口(AP I )的结构及其调用逻辑,提出了为系统AP I 建立钩子函数来截获相关AP I 操作的方法,并以此为基础设计并实现了基于W indowsMobile 的文件监控系统。
试验结果表明,系统可以监控所有的文件访问操作。
关键词:W indowsMobile;文件监控;应用程序接口;钩子中图分类号:TP309;TP311 文献标志码:AD esi gn and i m ple m en t a ti on of f ile m on itor i n g system of W i n dows M ob ileX I E Ze 2ke,HU J ing 2s ong(College of Co m puter Science and Engineering,South China U niversity of Technology,Guangzhou Guangdong 510006,China )Abstract:The authors analyzed the file syste m ofW indowsMobile,and studied the structure and call l ogic of the syste m App licati on Pr ogra m I nterface (AP I ).Then a way establishing hook functi on f or the system AP I t o intercep t the relevant AP I operati ons was put for ward as the basis of the design and i m p le mentati on of the file monit oring syste m based on W indows Mobile .The experi m ental results show that the syste m can monit or all file access operati ons .Key words:W indowsMobile;file monit oring;App licati on Pr ogra m I nterface (AP I );hook 市场咨询公司J.Gold A ss ociates 总裁杰克高德(Jack Gold )表示,当前智能手机在全球整个手机市场上所占的份额为10%,未来3至5年其市场份额可能会增加至25%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows文件读写监控系统摘要:21世纪,人类进入了一个全新的时代,一个以计算机技术为代表的信息时代。
人们的生活节奏随着信息技术的快捷方便而变快。
在这次信息革命中谁拥有便捷的信息,谁就掌握了时代的命脉,占据技术的颠峰。
在PC领域,称霸桌面的Windows系统的垄断和不公开源代码,对我们研究更是带来很大困难。
本程序的全称为Windows下的文件监视程序,是一个工具软件。
通过本程序的分析和设计,为创建更大的软件工程提供了一定的帮助。
在逆向工程中,可以利用本程序,分析进程的文件读写情况,对工程的开发提供了一定的帮助。
本程序采用VC开发环境,利用DLL挂接,拦截API等技术实现了对目标进程的文件读写监视关键词:文件监视程序工具软件DLL挂接拦截API1.引言1.1课题背景以计算机为代表的信息技术在近几年在全世界得到了飞速的发展,在企事业单位计算机已经成为主要的工作平台,在个人的日常生活中,计算机已经非常普及,就像普通家电那样。
计算机技术的运用可以帮助人们减轻负担,提高工作效率。
然而我们国家计算机研究起步相对较晚,特别在PC领域,微软的windows 平台垄断了我们国家的绝大部分,再加上它的源代码的不公开,以及众多版本,给我国的平台研究更是带来了很大的困难。
现在我们国家已经有一些公司和集体在研究操作系统。
本程序是一个工具软件,它可以做为很多软件项目的工具,可以在项目开发前期进行简单的构造。
在设计本程序的时候,运用了很多热门技术,比如DLL 挂接和远线程注射等,在很多杀毒软件和防火墙软件中都有它们的身影。
1.2系统开发的目的和意义本程序作为一个工具软件,之所以设计它,主要一方面出于学习研究一些热门技术,以及利用这些技术能到达一个什么效果。
它用到的技术,比如DLL挂接,API拦截,这些技术在很多杀毒软件等中运用的很多。
比如卡巴斯基,它在进程读写时进行拦截,获得读写文件的数据,再利用其杀毒引擎进行查杀病毒。
上面提到的拦截实际上是对文件读写API(比如ReadFile,WriteFile等)。
很多游戏外挂利用远线程注射,将木马DLL插入游戏进程空间内,一旦插入成功,它就能破坏进程的正常运行,甚至有的对游戏进程的数据区进行搜索内帐号密码等信息,达到窃取帐号等目的。
类似这些技术用处很大,几乎所有的市面上知名的软件都有用到。
另一方面是其实用性。
本小程序能拦截目标进程对文件的操作,并向用户报告,并且可以设置对目标进程对文件只读,对一些重要数据可以起到一定的仿删除作用。
比如一些病毒就专门破坏移动存储设备内的文件,通过对对其设置只读就可以防止这类事情的发生。
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 APIWindows API是一套用来控制Windows的各个部件的外观和行为的一套预先定义的Windows函数。
用户的每个动作都会引发一个或几个函数的运行以告诉Windows发生了什么。
更易理解地说:Windows 这个多作业系统除了协调应用程序的执行、分配内存、管理系统资源之外,它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程式达到开启视窗、描绘图形、使用周边设备等目的,由于这些函数服务的对象是应用程序,所以便称之为Application Programming Interface,简称API 函数。
凡是在Windows 工作环境底下执行的应用程式,都可以调用Windows API。
(3)API 分为四种类型远程过程调用(RPC):通过作用在共享数据缓存器上的过程(或任务),实现程序间的通信。
标准查询语言(SQL):是标准的访问数据的查询语言,通过通用数据库实现应用程序间的数据共享。
文件传输:文件传输通过发送格式化文件实现应用程序间数据共享。
信息交付:指松耦合或紧耦合应用程序间的小型格式化信息,通过程序间的直接通信实现数据共享。
2.2 API HOOK在Windows系统下编程,应该会接触到API函数的使用,常用的API函数大概有2000个左右。
随着控件,stl等高效编程技术的出现,API的使用概率在普通的用户程序上就变得越来越小了。
当诸如控件这些现成的手段不能实现的功能时,我们还需要借助API。
最初有些人对某些API函数的功能不太满意,就产生了如何修改这些API,使之更好的服务于程序的想法,这样API HOOK就自然而然的出现了。
通过API HOOK,改变一个系统API的原有功能。
基本的方法就是通过HOOK“接触”到需要修改的API函数入口点,改变它的地址指向新的自定义的函数。
API HOOK并不属于MSDN上介绍的13类HOOK 中的任何一种。
所以说,API HOOK并不是什么特别不同的HOOK,它也需要通过基本的HOOK提高自己的权限,跨越不同进程间访问的限制,达到修改API函数地址的目的。
对于自身进程空间下使用到的API函数地址的修改,是不需要用到API HOOK技术就可以实现的。
2.3 Visual C++Visual C++是一种可视化的、面对对象的高级程序设计,可用于开发Windows环境下的种类应用程序。
它简单易学、效率高,且功能强大。
在Visual Basic环境下,使用Windows内部的应用程序接口(API)函数,以及动态链接库(DLL)、动态数据交换(DDE)、对象的链接与嵌入(OLE)、开放式数据访问(ODBC)等技术,可以高效、快速地开发出Windows环境下功能强大、图形界面丰富的应用软件系统。
同时,由于本程序中的监视模块必须做成一个动态链接库,所以要求的开发环境必须能很好的支持动态链接库的开发。
2.4 DLL动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。
动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。
函数的可执行代码位于一个DLL 中,该DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。
DLL 还有助于共享数据和资源。
多个应用程序可同时访问内存中单个DLL 副本的内容。
DLL 是一个包含可由多个程序同时使用的代码和数据的库。
3.系统总体分析3.1系统的可行性研究可行性研究的目的是用最小的代价在尽可能短的时间内确定问题是否能够解决。
也就是说可行性研究的目的不是解决问题,而是确定问题是否值得去解,研究在当前的具体条件下,开发新系统是否具备必要的资源和其它条件。
一般说来,应从经济可行性、技术可行性、运行可行性、法律可行性和开发方案可行性等方面研究可行性。
3.2系统需求分析由于开发该系统的工具为Microsoft 公司的Visual C ++6.0,所以在分析阶段应当结合Visual C++ 6.0 这种工具的自身的特点进行建模。
这样,一方面能够最大限度的发挥该工具的优越性;另一方面,可以利用该工具的优点使系统更加完善、可靠和稳定。
本程序为一个工具软件。
该程序要满足如下功能:(1) 程序应建立友好的界面,既要操作简单、直观、灵活,又要易于学习掌握。
(2) 本程序需要在目标进程插入DLL ,要保证不去破坏目标进程的正常运行。
(3) 如果本程序用来监视系统进程,要保证不去破坏系统进程,不使系统无法工作。
(4) 系统的模块化程度要高,系统可扩充、易维护。
3.3系统数据流图数据流图(DFD )是一种图形化技术,它描绘信息流和数据从输入到输出的过程中所经受的变换。
在数据流图中没有任何具体的物理元素,它知识描绘信息在软件中流动和被处理的情况。
因为数据流图是系统逻辑功能的图形表示,即使不是专业的计算机技术人员也容易理解它,所以是分析员与用户之间极好的通信工具。
此外,设计数据流图时只需要考虑系统必须完成的基本逻辑功能,完全不需要考虑怎样具体地实现这些功能。
系统总的数据流图如图3.1所示。
图3.1系统总数据流图系统功能级数据流图如图3.2所示。
被监视进程名图3.2系统功能级数据流图 4.系统总体设计4.1功能模块分析本程序的主要任务是监视进程的文件读写操作。
主要用户为软件项目开发人员。
程序提供友好界面,Windows 下的文件监视程序 目标 用户信息查询 文件名信息 缓冲大小信息读写信息 进程名信息 文件读写信息 进程文件读写信息 进程文件读写信息目标进程操作简单。
为实现这些功能,系统要包含如下几个基本模块:(1)监视模块。
负责监视本进程的文件操作。
(2)DLL注射模块。
注射监视模块到被监视进程地址空间。
(3)信息交换模块。
收集文件操作信息和负责进程间通信。
(4)数据显示模块。
显示收集来的信息。
(5)APIHOOK模块。
HOOK需要挂钩的API函数。
(6)选项模块。
配置程序监控设置。
(7)文件读写监控模块。
核心模块,负责监控文件读写操作。
此外采用硬件软件及科学的系统开发方案,设计本程序,实现文件监视的计算机自动化。
系统应符合现代化、自动化的管理制度,并达到操作直观、方便、实用、安全等要求。
系统总体流程图如图4.1.所示开始初始化是否选择监视模式NY是否输入进程名NY开始监视结束图4.1系统总体流程图系统功能模块如图4.2所示主界面显示模块监视模块注射模块图4.2系统总体功能模块图4.2显示模块显示模块是向用户报告监视信息的主要地方。