[发明专利]检测网页中恶意代码的方法及装置有效
申请号: | 201110445277.1 | 申请日: | 2011-12-27 |
公开(公告)号: | CN102819698A | 公开(公告)日: | 2012-12-12 |
发明(设计)人: | 袁晓辉;龙海;李帅 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F21/00 | 分类号: | G06F21/00 |
代理公司: | 深圳市世纪恒程知识产权代理事务所 44287 | 代理人: | 胡海国 |
地址: | 518044 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 检测 网页 恶意代码 方法 装置 | ||
技术领域
本发明涉及网页技术领域,尤其涉及一种检测网页中恶意代码的方法及装置。
背景技术
随着信息技术的不断发展,人们习惯于通过浏览网页的方式来了解周边的时事动态。网页技术作为重要的信息共享技术,为用户提供了非常丰富的信息。
然而,最初的静态网页缺乏互动,可重用性较差,不便于维护,由此逐渐发展出动态网页技术,VBScript(Visual Basic Script,Visual Basic脚本语言)脚本技术即是其中之一。
VBScript脚本技术可以用来指挥客户端浏览器,动态实现HTML,甚至可以将外部程序结合到网页中。然而,由于其缺乏安全性,恶意攻击者常常利用VBScript技术,在网页中植入恶意代码,下载木马,攻击用户主机,获取用户信息。
目前,检测恶意VBScript脚本方案之一即是通过将VBScript转为JavaScript,然后再利用JavaScript脚本引擎进行分析。其存在的缺陷在于:VBScript和JavaScript并不能等价转换,转换后得到的JavaScript可能与原有的VBScript语义功能不一致,从而导致检测结果不准确。
发明内容
本发明的主要目的在于提供一种检测网页中恶意代码的方法及装置,旨在提高用户浏览网页的安全性。
为了达到上述目的,本发明提出一种检测网页中恶意代码的方法,包括:
通过执行代码及预定义的对象代码,获取函数列表;
对所述代码进行解析,根据解析结果及所述函数列表获取变量值。
优选地,所述对代码进行解析,根据解析结果及所述函数列表获取变量值的步骤包括:
对所述代码进行解析,获取所述代码中的函数过程信息;
根据所述函数列表及所述函数过程信息对所述代码进行展开;
运行展开后的代码,提取变量值。
优选地,该方法还包括:对所述变量值进行验证。
优选地,所述代码为脚本代码,所述通过执行代码及预定义的对象代码,获取函数列表的步骤包括:
调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;
调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;
调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表。
优选地,所述根据函数列表及所述函数过程信息对所述代码进行展开的步骤包括:
根据所述函数过程信息获取各函数的调用关系;
根据各函数的调用关系生成二维依赖表;
根据所述函数列表及所述二维依赖表对所述代码进行展开。
优选地,所述根据函数列表及所述二维依赖表对所述代码进行展开的步骤包括:
遍历所述函数列表,将获取的第一个未展开且函数依赖关系为NIL的函数作为下一个待展开函数返回;
依次展开所述函数列表中的各所述待展开函数。
优选地,所述对代码进行解析,获取所述代码中的函数过程信息的步骤进一步包括:
对每一函数依次调用所述执行代码方法及全局变量列表方法获取局部变量列表。
本发明还提出一种检测网页中恶意代码的装置,包括:
函数列表获取模块,用于通过执行代码及预定义的对象代码,获取函数列表;
解析获取模块,用于对所述代码进行解析,根据解析结果及所述函数列表获取变量值。
优选地,所述解析获取模块包括:
解析获取单元,用于对所述代码进行解析,获取所述代码中的函数过程信息;
展开单元,用于根据所述函数列表及所述函数过程信息对所述代码进行展开;
变量值提取单元,用于运行展开后的代码,提取变量值。
优选地,该装置还包括:验证模块,用于对所述变量值置进行验证。
优选地,所述代码为脚本代码,所述函数列表获取模块包括:
执行单元,用于调用脚本接口提供的执行代码方法,执行脚本代码及预定义的对象代码;
过程名列表获取单元,用于调用所述脚本接口提供的过程名列表获取方法,获取所述脚本代码中的过程名列表;
全局变量列表获取单元,用于调用所述脚本接口提供的变量列表获取方法,获取接口指针,并利用反射机制获取所述脚本代码中的全局变量列表。
优选地,所述展开单元包括:
调用关系获取子单元,用于根据所述函数过程信息获取各函数的调用关系;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110445277.1/2.html,转载请声明来源钻瓜专利网。