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