一种监控应用程序行为的方法及装置的制作方法

文档序号:6480341阅读:350来源:国知局

专利名称::一种监控应用程序行为的方法及装置的制作方法
技术领域
:本发明涉及计算机领域,特别涉及一种监控应用程序行为的方法及装置。背景4支术Windows系统作为一个开》文的平台,任何软件厂商或者个人都可以发布自己的软件产品,然而,有一些恶意软件会擅自读取甚至篡改用户的私有信息。因此,用户所使用的软件的安全性无法得到的保证。为了保障安全性,用户可以采用的实时监控的方法对软件行为进行监控并记录软件的行为日志,并将记录的日志通知给用户让用户处理。目前用户通常使用杀毒软件或Microsoft发布的系统监控软件ProcessMonitor对软件的行为进行实时监控。在实现本发明的过程中,发明人发现现有技术至少存在以下问题杀毒软件在运行时通常占用较多系统资源如CPU和内存,容易导致操作系统和应用程序反应緩慢,而且需要频繁升级,无法满足没有网络连接的用户的需求;ProcessMonitor采取底层驱动过滤的方式实时监控操作系统中所有应用程序的行为,虽然这种监控方式不易被绕过,但由于它监视整个系统中所有的应用程序,因此占用了过多的计算资源,导致系统反应i^^屯。
发明内容为了在监控应用程序行为时,减少占用的资源,本发明实施例提供了一种监控应用程序行为的方法及装置。所述技术方案如下一种监控应用程序行为的方法,所述方法包括向应用程序加入新,爻,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述向应用程序加入新l史,具体包括在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的可移植的执行体PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头,同时修改了所述原PE头使之指向所述新的输入表。所述新的输入表调用所述创建线程函数包括的代码段和所述访问文件/注册表函数包括的代码段。所述所述创建线程函数包括的代码段获取处理应用程序的线程号,具体包括所述创建线程函数包括的代码段链接到对应的创建线程函数,所述创建线程函数获取处理所述应用程序的线程号。所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;记录所述资源名与句柄之间的映射关系。所述所述代码段监控所述应用程序编程接口函数的操作过程,并记录监控的结果,具体包括判断所述调用的访问文件/注册表函数的操作功能;若是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数名称、访问文件/注册表函数的名称、新资源名、错误代码;若是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息;若是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息。所述资源名与句柄之间的映射关系记录在全局的数据结构中。7一种监控应用程序行为的装置,所述装置包括添加模块,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加入代码段;获取模块,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;监控模块,用于所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;输出模块,用于在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述添加模块具体包括创建单元,用于在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头;修改单元,用于修改所述原PE头使之指向所述新的输入表。所述新的输入表调用所述应用程序编程接口函数包括的代码段。所述获取模块具体包括调用单元,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段;链接单元,用于所述代码段链接到对应的创建线程函数;获取单元,用于所述创建线程函数获取处理所述应用程序的线程号。所述装置还包括创建模块,用于所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名,用于记录所述资源名与句柄之间的映射关系。所述监控模块具体包括;判断单元,用于判断所述调用的访问文件/注册表函数的操作功能;第一记录单元,用于在判断单元判断出所述访问文件/注册表函数的功能是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括记录获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数的名称、访问文件/注册表的函数的名称、新资源名、错误代码;第二记录单元,用于判断单元判断出所述访问文件/注册表函数的功能是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信自第三记录单元,用于判断单元判断出的所述访问函数的功能是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、镅-误(正确)信息。所述资源名与句柄之间的映射关系记录在全局的数据结构中。本发明实施例提供的技术方案的有益效果是通过向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段,利用代码段监控应用程序调用的访问文件/注册表函数的操作过程,并记录监控的结果,在应用程序退出时,将记录的监控的结果输出给用户,由于对具体的正在运行应用程序进行监控,所以在监控时,占用系统的资源少,不会影响操作系统与应用程序运行的速度。图1是本发明实施例提供了一种监控应用程序行为的方法流程图;图2是本发明实施例提供了一种监控应用程序行为的方法详细流程图;图3是本发明实施例提供了一种监控应用程序行为的装置。具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。实施例1如图1所示,本发明实施例提供了一种监控应用程序行为的方法,包括步骤101:向应用程序加入新段,向创建线程函数和访问文件/注册表函步骤102:应用程序启动后,启动的应用程序包括的新段调用创建线程函数包括的代码段,调用的创建线程函数包括的代码段获取处理应用程序的线程号;步骤103:启动的应用程序包括的新段调用访问文件/注册表函数包括的代码段,调用的访问文件/注册表函数包括的代码段监控访问文件/注册表函数的操作过程,并记录监控的结果;步骤104:在应用程序退出时,按获取的线程号输出记录的监控的结果给用户。在本实施例中以日志信息的形式记录监控的结果。本实施向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段,利用代码段监控应用程序调用的访问文件/注册表函数的操作过程,并记录监控的结果,在应用程序退出时,将记录的监控的结果输出给用户,由于对具体的正在运行的应用程序进行监控,所以在监控时,占用系统的资源少,不会影响操作系统与应用程序运行的速度。实施例2如图2所示,本发明实施例提供了一种监控应用程序行为的方法,具体包括步骤201:对应用程序和Windows系统内的API(ApplicationProgrammingInterface,应用程序编程接口)函幾进行代码插装;具体地,在Windows系统中应用程序以执行文件的形式存在,执行文件包括文件头、PE(PortableExecutable,可移植的执4亍体)头,正文^更包括程序代码,数据段包括初始化数据、所用到的动态连接库与系统调用的输入链表、输出(Exported)函数表与调试符号。为了修改应用程序在内存中的映像,利用Detours工具在调试符号与输出函数表之间创建了一个新段,该新段包含有新的PE头与一个新的函数输入表,该新的PE头是通过将原PE头复制得到的PE头,同时修改了原先的PE头使之指向新的输入表。在Windows系统的API函数中插装新的代码段,该代码段用于在API函数被应用程序调用时,截获调用的API函数的配置参数,并监控该API函数操作过程,以日志信息的形式记录监控的结果,其中,被插装代码的API函数包括创建线程函数与访问文件/注册表函数。在本实施例中执行文件的新的输入表包括新的动态连接库,应用程序在需要调用API函数时,先查询新的函数输入表,从而调用了插入的代码段。步骤202:应用程序启动,调用创建线程函数,利用调用的创建线程函数获得处理启动的应用程序的线程号,并为应用程序打开的文件或注册表项创建句柄;具体地,应用程序在启动时,查询新的函数输入表,进而调用代码段,代码段链接对应的创建线程函数用于为应用程序打开的文件或注册表项创建句柄,并将句柄返回给应用程序,然后应用程序通过句柄来进行操作,其中,句柄用于标识文件或注册表项,在本实施例中将文件名称、注册表项名称统称为资源名。创建线程函数在创建一个句柄后,记录资源名与句柄之间的映射关系。步骤203:应用程序包括的新段调用代码段,代码段链接对应的访问文件/注册表函数;其中,访问文件/注册表函数被调用时,Windows系统为访问文件/注册表函数配置参数,代码段截获参数,同时开始监控访问文件/注册表函数的操作过程。步骤204:代码段判断调用的访问文件/注册表函数的操作功能,若该函数是根据应用程序使用的句柄进行创建新句柄的操作,则执行步骤205,若是对应用程序使用的句柄进行读取或修改操作,则执行步骤209,若关闭应用程序使用的句柄,则执行210,否则,执行步骤213;其中,应用程序调用访问文件/注册表函数,同时为该访问文件/注册表函数配置参数。步骤205:访问文件/注册表的函数创建新资源名;具体地,访问文件/注册表函数从记录的资源名与句柄之间的映射关系中,以应用程序使用的句柄为索引,查找出对应的资源名,将查找的资源名与截获的参数组合得到新资源名,其中,该参数为访问文件/注册表函数包括的插装的代码段截获的参数。步骤206:访问文件/注册表函数为新资源名创建新句柄,若创建不成功,则执行步骤207,否则,执行步骤208;步骤207:记录日志信息包括获取的线程号、创建线程函数的名称、访问文件/注册表的函数的名称、新资源名、错误代码等等,返回步骤203;其中,日志信息按线程进行记录的信息,从而能够更好地帮助用户分析应用程序的行为。步骤208:记录创建的新句柄与新资源名之间的映射关系,同时记录日志信息包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值等等,返回步骤203;步骤209:从句柄与资源名之间的映射关系中查找出应用程序使用的句柄对应的资源名;记录日志信息包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信息等等,返回步骤203;步骤210:从句柄与资源名之间的对应关系中,以应用程序使用的句柄,查找出对应的资源名,记录日志信息包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信息等等;步骤211:关闭应用程序使用的句柄,若关闭成功,则执行212,否则,执行203;步骤212:从句柄与资源名之间的映射关系中删除应用程序使用的句柄与查找的资源名之间的对应关系,返回步骤203;步骤213:应用程序退出时,输出日志信息。其中,系统通过命名管道将记录的日志信息以字符串的形式输出给用户。在本实施例中在应用程序和操作系统的API函数中插装代码,无须修改操作系统和应用程序的代码,因此,对用户是透明地;另外,所有的操作都在应用层进行,不会对操作系统内核和驱动进行任何修改。本实施例中事先建立一个全局的数据结构HandleToName_map用于记录资源名与句柄之间的映射关系,在初始化该全局的数据结构时,先将<HKEY—LOCAL—MACHINE,"HKLM"〉,<HKEY_CURRENT—USER,"HKCU',〉,〈HKEY一ALL一USERS,"HKIT>,<HKEY—CURRENT一CONFIG,"HKCC,,>,<HKEY—CLASSES—ROOT,"HKCR">等映射关系加入到该全局的数据结构中。在本实施例中进行代码段插装的API函数包括CreateThread,RegCreateKeyEx,RegOpenKeyEx,RegCloseKey,RegDeleteKey,RegSetValueEx,RegQueryValueEx,RegEnumKeyEx,RegEnumValue,RegDeleteValue,RegQuerylnfoKeyEx,RegOpenCurrentUser,RegOpenUserClass,CreateFile,CopyFileEx,DeleteFile,FindFirstFileEx,FindNextFile,GetFileAttributes等等。本发明实施例提供的一种监控应用程序行为的方法可以通过如下的伪代码来实现Mine一RegCreateKeyExW(HKEYa0,LPCWSTRal,DWORDa2,LPWSTRa3,DWORDa4,REGSAMa5,LPSEC而TY一ATTRIBUTESa6,PHKEYa7,LPDWORDa8)LONGErrorNo;查询HandleToName—map获得a0对应的name,并与al组合获得要创建(打开)的handle对应的newName;if(Real—RegOpenKeyEx(a0,al,0,a5,a7)==ERROR—SUCCESS)获取操作内容,并通过命名管道输出日志信息returnERROR—SUCCESS;elseErrorNo=Real一CreateKeyExW(a0,al,a2,a3,a4,a5,a6,a7,a8);if(ErrorNo==ERROR—SUCCESS){更新HandleToName一map;获取操作内容,并通过命名管道输出日志信息ReturnErrorNo;Mine_CloseHandle(HANDLEa0)LONGErrorNo;查询HandleToName_map获得a0对应的name;ErrorNo=Real—CloseHandle(aO);if(E丽No==ERROR—SUCCESS)13更新HandleToName一map;获取操作内容,并通过命名管道输出日志信息returnErrorNo;Mine一RegEnumKeyExW(HKEYaO,DWORDal,LPWSTRa2,LPDW。RDa3,LPDWORDa4,LPWSTRa5,LPDWORDa6,LPFILETIMEa7)LONGErrorNo;查询HandleToName—map获得a0对应的name;ErrorNo=Real—RegEnumKeyExW(a0,al,a2,a3,a4,a5,a6,a7);获取操作内容,并通过命名管道输出日志信息;returnErrorNo;本实施在应用程序和Windows系统的API函数中插装代码,应用程序的包括的新段启动调用API函数的代码段,代码段对调用的API函数进行监控,并记录API函数操作的日志信息,在应用程序退出时,将记录的日志信息输出给用户,由于对具体的正在运行的应用程序进行监控,所以占用系统的资源少,不会影响操作系统与应用程序运行的速度,并且按线程输出日志信息可以更好地帮助用户分析应用程序的^f亍为。实施例3如图3所示,本发明实施例提供了一种监控应用程序行为的装置,包括添加才莫块301,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加入代码段;获取^莫块302,用于应用程序启动后,启动的应用程序包括的新賴:调用创建线程函数包括的代码段,调用的创建线程函数包括的代码段获取处理应用程序的线程号;监控模块303,用于新段调用访问文件/注册表函数包括的代码段,调用的访问文件/注册表函数包括的代码段监控访问文件/注册表函数的操作过程,并记录监控的结果;输出模块304,用于在应用程序退出时,按获取的线程号输出监控的结果。其中,在本实施例中以日志信息的形式记录监控的结果。其中,添加模块301具体包括创建单元,用于在调试符号与输出函数表之间创建了一个新段,新段包含有新的PE头与一个新的函数输入表,该新的PE头是通过将原PE头复制得到的PE头;修改单元,用于修改原PE头使之指向新的输入表;其中,新的输入表调用创建线程函数包括的代码段和访问文件/注册表函数包括的代码段。获取模块302具体包括调用单元,用于应用程序启动后,启动的应用程序包括的新段调用创建线程函数包括的代码段;链接单元,用于调用单元调用的代码段链接到对应的创建线程函数;获取单元,用于链接单元链接的创建线程函数获取处理启动的应用程序的线程号。监控模块具体包括;判断单元,用于新段调用的访问文件/注册表函数包括的代码段,调用的代码段判断调用的访问文件/注册表函数的操作功能;第一记录单元,用于在判断单元判断出所述访问文件/注册表函数的操作功能是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建了新句柄,若成功创建新句柄,则记录日志信息包括记录获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录日志信息包括获取的线程号、创建线程函数的名称、访问文件/注册表函数的名称、新资源名、错误代码;第二记录单元,用于判断单元判断出所述访问文件/注册表函数的操作功能是对所述句柄进行读取或修改,则记录日志信息包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息;第三记录单元,用于判断单元判断出的所述访问函数的操作功能是关闭所述句柄,则记录日志信息包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息。进一步地,调用模块还包括获取单元,用于链接单元链接的创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;记录单元,用于记录所述资源名与句柄之间的映射关系。其中,资源名与句柄之间的映射关系记录全局的数据结构中。本实施例添加^f莫块向应用程序新段,向创建线程函数和访问文件/注册表函数加入代码段,监控才莫块监控访问文件/注册表函数的4喿作过程,并记录监控的结果,当应用程序退出时,输出记录的监控结果,由于对具体的正在运行的应用程序进行监控,所以在监控时,占用的系统资源少,不会影响应用程序和操作系统的运行速率。以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如计算机中的硬盘、光盘或软盘。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。权利要求1.一种监控应用程序行为的方法,其特征在于,所述方法包括向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。2.根据权利要求i所述一种监控应用程序行为的方法,其特征在于,所述向应用程序加入新段,具体包括在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的可移植的执行体PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头,同时修改了所述原PE头使之指向所述新的输入表。3.根据权利要求2所述一种监控应用程序行为的方法,其特征在于,所述新的输入表调用所述创建线程函数包括的代码段和所述访问文件/注册表函数包括的代码段。4.根据权利要求1所述一种监控应用程序行为的方法,其特征在于,所述所述创建线程函数包括的代码段获取处理应用程序的线程号,具体包括所述创建线程函数包括的代码段链接到对应的创建线程函数,所述创建线程函数获取处理所述应用程序的线程号。5.根据权利要求4所述一种监控应用程序行为的方法,其特征在于,所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;记录所述资源名与句柄之间的映射关系。6.根据权利要求1所述一种监控应用程序行为的方法,其特征在于,所述所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果,具体包括判断所述调用的访问文件/注册表函数的才乘作功能;若是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数名称、访问文件/注册表函数的名称、新资源名、错误代码;若是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息;若是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息。7.根据权利要求5所述一种监控应用程序的方法,其特征在于,所述资源名与句柄之间的映射关系记录在全局的数据结构中。8.—种监控应用程序行为的装置,其特征在于,所述装置包括添加才莫块,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加入代码4殳;获取模块,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;监控模块,用于所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;输出模块,用于在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。9.根据权利要求8所述一种监控应用程序行为的装置,其特征在于,所述添加模块具体包括创建单元,用于在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头;修改单元,用于修改所述原PE头使之指向所述新的输入表。10.根据权利要求9所述一种监控应用程序行为的装置,其特征在于,所述新的输入表调用所述创建线程函数包括的代码段和访问文件/注册表函数包括的代码段。11.根据权利要求8所述一种监控应用程序行为的装置,其特征在于,所述获取模块具体包括调用单元,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段;链接单元,用于所述代码段链接到对应的创建线程函数;获取单元,用于所述创建线程函数获取处理所述应用程序的线程号。12.根据;K利要求ll所述一种监控应用程序^f亍为的装置,其特征在于,所述装置还包括创建模块,用于所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名,记录所述资源名与句柄之间的映射关系。13.根据权利要求8所述一种监控应用程序行为的装置,其特征在于,所述监控模块具体包括;判断单元,用于判断所述调用的访问文件/注册表函数的操作功能;第一记录单元,用于在判断单元判断出所迷访问文件/注册表函数的功能是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括记录获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数的名称、访问文件/注册表的函数的名称、新资源名、错误代码;第二记录单元,用于判断单元判断出所述访问文件/注册表函数的功能是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信自第三记录单元,用于判断单元判断A的所述访问函数的功能是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信息。14.根据权利12所述一种监控应用程序行为的装置,其特征在于,所述资源名与句柄之间的映射关系记录在全局的数据结构中。全文摘要本发明公开了一种监控应用程序行为的方法及装置,属于计算机领域。所述方法包括向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,应用程序包括的新段调用创建线程函数包括的代码段,创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件或注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述装置包括添加模块、获取模块、监控模块、输出模块。本发明对正在运行的应用程序监控,占用系统资源少,不影响操作系统与应用程序运行的速度。文档编号G06F21/00GK101458754SQ20091000318公开日2009年6月17日申请日期2009年1月9日优先权日2009年1月9日发明者张悠慧,亮洪,王小玲申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1