当前位置: 首页 > 专利查询>清华大学专利>正文

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

技术编号:2912566 阅读:617 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种监控应用程序行为的方法及装置,属于计算机领域。所述方法包括:向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,应用程序包括的新段调用创建线程函数包括的代码段,创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件或注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述装置包括:添加模块、获取模块、监控模块、输出模块。本发明专利技术对正在运行的应用程序监控,占用系统资源少,不影响操作系统与应用程序运行的速度。

【技术实现步骤摘要】

本专利技术涉及计算机领域,特别涉及一种监控应用程序行为的方法及装置
技术介绍
Windows系统作为一个开放的平台,任何软件厂商或者个人都可以发布自己的软件产品,然而,有一些恶意软件会擅自读取甚至篡改用户的私有信息。因此,用户所使用的软件的安全性无法得到的保证。为了保障安全性,用户可以采用的实时监控的方法对软件行为进行监控并记录软件的行为日志,并将记录的日志通知给用户让用户处理。目前用户通常使用杀毒软件或Microsoft发布的系统监控软件Process Monitor对软件的行为进行实时监控。在实现本专利技术的过程中,专利技术人发现现有技术至少存在以下问题:杀毒软件在运行时通常占用较多系统资源如CPU和内存,容易导致操作系统和应用程序反应缓慢,而且需要频繁升级,无法满足没有网络连接的用户的需求;Process Monitor采取底层驱动过滤的方式实时监控操作系统中所有应用程序的行为,虽然这种监控方式不易被绕过,但由于它监视整个系统中所有的应用程序,因此占用了过多的计算资源,导致系统反应迟钝。
技术实现思路
为了在监控应用程序行为时,减少占用的资源,本专利技术实施例提供了一种监控应用程序行为的方法及装置。所述技术方案如下:一种监控应用程序行为的方法,所述方法包括:向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函-->数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述向应用程序加入新段,具体包括:在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的可移植的执行体PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头,同时修改了所述原PE头使之指向所述新的输入表。所述新的输入表调用所述创建线程函数包括的代码段和所述访问文件/注册表函数包括的代码段。所述所述创建线程函数包括的代码段获取处理应用程序的线程号,具体包括:所述创建线程函数包括的代码段链接到对应的创建线程函数,所述创建线程函数获取处理所述应用程序的线程号。所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;记录所述资源名与句柄之间的映射关系。所述所述代码段监控所述应用程序编程接口函数的操作过程,并记录监控的结果,具体包括:判断所述调用的访问文件/注册表函数的操作功能;若是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数名称、访问文件/注册表函数的名称、新资源名、错误代码;若是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息;若是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息。所述资源名与句柄之间的映射关系记录在全局的数据结构中。-->一种监控应用程序行为的装置,所述装置包括:添加模块,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加入代码段;获取模块,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;监控模块,用于所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;输出模块,用于在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。所述添加模块具体包括:创建单元,用于在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头;修改单元,用于修改所述原PE头使之指向所述新的输入表。所述新的输入表调用所述应用程序编程接口函数包括的代码段。所述获取模块具体包括:调用单元,用于应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段;链接单元,用于所述代码段链接到对应的创建线程函数;获取单元,用于所述创建线程函数获取处理所述应用程序的线程号。所述装置还包括:创建模块,用于所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名,用于记录所述资源名与句柄之间的映射关系。所述监控模块具体包括;判断单元,用于判断所述调用的访问文件/注册表函数的操作功能;第一记录单元,用于在判断单元判断出所述访问文件/注册表函数的功能是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功-->的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括记录获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数的名称、访问文件/注册表的函数的名称、新资源名、错误代码;第二记录单元,用于判断单元判断出所述访问文件/注册表函数的功能是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信息;第三记录单元,用于判断单元判断出的所述访问函数的功能是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、查找的资源名、操作内容、错误(正确)信息。所述资源名与句柄之间的映射关系记录在全局的数据结构中。本专利技术实施例提供的技术方案的有益效果是:通过向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段,利用代码段监控应用程序调用的访问文件/注册表函数的操作过程,并记录监控的结果,在应用程序退出时,将记录的监控的结果输出给用户,由于对具体的正在运行应用程序进行监控,所以在监控时,占用系统的资源少,不会影响操作系统与应用程序运行的速度。附图说明图1是本专利技术实施例提供了一种监控应用程序行为的方法流程图;图2是本专利技术实施例提供了一种监控应用程序行为的方法详细流程图;图3是本专利技术实施例提供了一种监控应用程序行为的装置。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术实施方式作进一步地详细描述。实施例1如图1所示,本专利技术实施例提供了一种监控应用程序行为的方法,包括:步骤101:向应用程序加入新段,向创建线程函数和访问文件/注册表函-->数加入代码段;步骤102:应用程序启动后,启动的应用程序包括的新段调用创建线程函数包括的代码段,调用的创建线程函数包括的代码段获取处理应用程序的线程号;步骤103:启动的应用程序包括的新段调用访问文件/注册表函数包括的代码段,调用本文档来自技高网...

【技术保护点】
一种监控应用程序行为的方法,其特征在于,所述方法包括: 向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段; 应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段 获取处理应用程序的线程号; 所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果; 在所述应用程序退出时,按所述获取的线程号输出所述监控的结果 。

【技术特征摘要】
1.一种监控应用程序行为的方法,其特征在于,所述方法包括:向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入代码段;应用程序启动后,所述启动的应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果;在所述应用程序退出时,按所述获取的线程号输出所述监控的结果。2.根据权利要求1所述一种监控应用程序行为的方法,其特征在于,所述向应用程序加入新段,具体包括:在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的可移植的执行体PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头,同时修改了所述原PE头使之指向所述新的输入表。3.根据权利要求2所述一种监控应用程序行为的方法,其特征在于,所述新的输入表调用所述创建线程函数包括的代码段和所述访问文件/注册表函数包括的代码段。4.根据权利要求1所述一种监控应用程序行为的方法,其特征在于,所述所述创建线程函数包括的代码段获取处理应用程序的线程号,具体包括:所述创建线程函数包括的代码段链接到对应的创建线程函数,所述创建线程函数获取处理所述应用程序的线程号。5.根据权利要求4所述一种监控应用程序行为的方法,其特征在于,所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;记录所述资源名与句柄之间的映射关系。6.根据权利要求1所述一种监控应用程序行为的方法,其特征在于,所述所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作过程,并记录监控的结果,具体包括:判断所述调用的访问文件/注册表函数的操作功能;若是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数名称、访问文件/注册表函数的名称、新资源名、错误代码;若是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息;若是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误(正确)信息。7.根据权利要求5所述一种监控应用程序的方法,其特征在于,所述资源名与句柄之间的映射关系记录在全局的数据结构中。8.一种监控应用程序行为的装置,其特征在于,所述装置包括:添加模块,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加...

【专利技术属性】
技术研发人员:张悠慧王小玲洪亮
申请(专利权)人:清华大学
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1