[发明专利]一种Shellcode的动态检测方法在审
申请号: | 201510134654.8 | 申请日: | 2015-03-25 |
公开(公告)号: | CN104731708A | 公开(公告)日: | 2015-06-24 |
发明(设计)人: | 陈漠;刘渊;王潇茵;李宁 | 申请(专利权)人: | 北京信息控制研究所;中国工程物理研究院计算机应用研究所 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/56;G06F9/455 |
代理公司: | 中国航天科技专利中心 11009 | 代理人: | 陈鹏 |
地址: | 100037*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种Shellcode的动态检测方法,首先抓取网络数据流并进行划分,得到多个执行链;然后触发一个操作系统breakpoint异常,将异常触发时的寄存器值和内存内容作为初始寄存器值和内存内容并存储;最后依次执行执行链,同时在每一执行链执行过程中,检测是否出现死循环或者操作系统异常,如果出现死循环或系统异常,则当前执行链没有Shellcode,否则使用启发式方法检测当前执行链是否含有Shellcode,完成检测。本发明方法不仅能够检测到使用了代码混淆技术的Shellcode,而且未采用虚拟化技术、易于部署,能有效检测到可发现虚拟化环境的Shellcode,大大降低了Shellcode检测暴露的可能性。 | ||
搜索关键词: | 一种 shellcode 动态 检测 方法 | ||
【主权项】:
一种Shellcode的动态检测方法,其特征在于包括步骤如下:(1)令待检测主机执行能够引起breakpoint异常的指令,将此时寄存器值和内存内容作为重置待检测主机状态的初始寄存器值和内存内容并存储;(2)从待检测主机的网络通信信道中抓取网络数据流,并存储至待检测主机的内存中;(3)对抓取的网络数据流进行划分,得到多个执行链,并使用初始寄存器值和内存内容开始执行第一个执行链;(4)执行链执行过程中,检测是否出现死循环或者操作系统异常,如果出现死循环,则当前执行链没有Shellcode且当前执行链检测完成,输出未检测到Shellcode信号,读取初始寄存器值和内存内容,替换当前寄存器值和内存内容并转入步骤(6),如果出现操作系统异常,则当前执行链没有Shellcode且当前执行链检测完成,在产生对应的操作系统异常处理信号并送至操作系统内的异常处理程序之前,中止该操作系统异常对应的异常处理流程,输出未检测到Shellcode信号,读取初始寄存器值和内存内容,替换当前寄存器值和内存内容并转入步骤(6),如果没有出现死循环或者操作系统异常,则转入步骤(5);(5)使用Heuristics方法检测当前执行链,如果检测到Shellcode,则输出检测到Shellcode信号,转入步骤(6),否则输出未检测到Shellcode信号,转入步骤(6);(6)重复步骤(4)‑步骤(5)执行下一执行链直至网络数据流划分得到的所有执行链被遍历。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京信息控制研究所;中国工程物理研究院计算机应用研究所;,未经北京信息控制研究所;中国工程物理研究院计算机应用研究所;许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510134654.8/,转载请声明来源钻瓜专利网。
- 上一篇:一种缓存系统和方法
- 下一篇:NAND FLASH管理软件的测试方法