[发明专利]一种监控应用程序行为的方法及装置有效
申请号: | 200910003181.2 | 申请日: | 2009-01-09 |
公开(公告)号: | CN101458754A | 公开(公告)日: | 2009-06-17 |
发明(设计)人: | 张悠慧;王小玲;洪亮 | 申请(专利权)人: | 清华大学 |
主分类号: | G06F21/22 | 分类号: | G06F21/22;G06F9/44;G06F9/46 |
代理公司: | 北京三高永信知识产权代理有限责任公司 | 代理人: | 何文彬 |
地址: | 10008*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 监控 应用程序 行为 方法 装置 | ||
技术领域
本发明涉及计算机领域,特别涉及一种监控应用程序行为的方法及装置。
背景技术
Windows系统作为一个开放的平台,任何软件厂商或者个人都可以发布自己的软件产品,然而,有一些恶意软件会擅自读取甚至篡改用户的私有信息。因此,用户所使用的软件的安全性无法得到的保证。为了保障安全性,用户可以采用的实时监控的方法对软件行为进行监控并记录软件的行为日志,并将记录的日志通知给用户让用户处理。目前用户通常使用杀毒软件或Microsoft发布的系统监控软件Process Monitor对软件的行为进行实时监控。
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
杀毒软件在运行时通常占用较多系统资源如CPU和内存,容易导致操作系统和应用程序反应缓慢,而且需要频繁升级,无法满足没有网络连接的用户的需求;Process Monitor采取底层驱动过滤的方式实时监控操作系统中所有应用程序的行为,虽然这种监控方式不易被绕过,但由于它监视整个系统中所有的应用程序,因此占用了过多的计算资源,导致系统反应迟钝。
发明内容
为了在监控应用程序行为时,减少占用的资源,本发明实施例提供了一种监控应用程序行为的方法及装置。所述技术方案如下:
一种监控应用程序行为的方法,所述方法包括:
向应用程序加入新段,向创建线程函数和访问文件/注册表函数加入相同的代码段,所述新段用于调用所述创建线程函数中的代码段和所述访问文件/注册表函数中的代码段,所述代码段用于截取所述创建线程函数和所述访问文件/注册表函数的配置参数,监控所述创建线程函数和所述访问文件/注册表函数的操作过程,并以日志信息的形式记录监控的结果;
应用程序启动后,所述应用程序包括的新段调用创建线程函数包括的代码段,所述创建线程函数包括的代码段获取处理应用程序的线程号;
所述新段调用访问文件/注册表函数包括的代码段,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作功能,并记录所述操作功能对应的日志信息;
在所述应用程序退出时,按所述获取的线程号输出所述监控的结果;
其中,所述访问文件/注册表函数包括的代码段监控所述访问文件/注册表函数的操作功能,并记录所述操作功能对应的日志信息,具体包括:
判断所述调用的访问文件/注册表函数的操作功能;
若是根据所述应用程序使用的句柄进行创建新句柄的操作,则进一步判断是否成功的创建所述新句柄,若成功创建新句柄,则记录监控的结果包括获取的线程号、创建线程函数名称、访问文件/注册表函数名称、新资源名、返回值,否则,记录监控的结果包括所述获取的线程号、创建线程函数名称、访问文件/注册表函数的名称、新资源名、错误代码;
若是对所述句柄进行读取或修改,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误/正确信息;
若是关闭所述句柄,则记录监控的结果包括所述线程号、创建线程函数名称、访问文件/注册表函数名称、资源名、操作内容、错误/正确信息。
所述向应用程序加入新段,具体包括:
在调试符号与输出函数表之间创建了一个新段,所述新段包含有新的可移植的执行体PE头与一个新的函数输入表,所述新的PE头是通过将原PE头复制得到的PE头,同时修改了所述原PE头使之指向所述新的函数输入表。
所述新的输入表调用所述创建线程函数包括的代码段和所述访问文件/注册表函数包括的代码段。
所述创建线程函数包括的代码段获取处理应用程序的线程号,具体包括:
所述创建线程函数包括的代码段链接到对应的创建线程函数,所述创建线程函数获取处理所述应用程序的线程号。
所述创建线程函数为所述应用程序打开的文件或注册表项创建句柄,其中,文件名称或注册表项名称统称为资源名;
记录所述资源名与句柄之间的映射关系。
所述资源名与句柄之间的映射关系记录在全局的数据结构中。
一种监控应用程序行为的装置,所述装置包括:
添加模块,用于向应用程序加入新段,向创建线程函数、访问文件/注册表函数加入相同的代码段,所述新段用于调用所述创建线程函数中的代码段和所述访问文件/注册表函数中的代码段,所述代码段用于截取所述创建线程函数和所述访问文件/注册表函数的配置参数,监控所述创建线程函数和所述访问文件/注册表函数的操作过程,并以日志信息的形式记录监控的结果;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于清华大学,未经清华大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910003181.2/2.html,转载请声明来源钻瓜专利网。