[发明专利]一种缓冲区溢出检测方法及系统无效
申请号: | 201310583180.6 | 申请日: | 2013-11-19 |
公开(公告)号: | CN103559439A | 公开(公告)日: | 2014-02-05 |
发明(设计)人: | 方雪静 | 申请(专利权)人: | 浪潮(北京)电子信息产业有限公司 |
主分类号: | G06F21/52 | 分类号: | G06F21/52;G06F21/56 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 王丹;栗若木 |
地址: | 100085 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 缓冲区 溢出 检测 方法 系统 | ||
1.一种缓冲区溢出检测方法,其特征在于,包括以下步骤:
当发生缓冲区溢出时,恶意代码会调用系统API函数;
通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出。
2.根据权利要求1所述的方法,其特征在于:当发生缓冲区溢出时,恶意代码会调用系统API函数的过程为:Shell code Call Win32系统API函数即LoadLibraryW;其中,LoadLibraryW为函数名。
3.根据权利要求2所述的方法,其特征在于:通过HOOK恶意代码调用的系统API函数的过程为:通过动态链接库DLL使用Microsoft Detours库,HOOK操作系统关键的API函数即HOOK_LoadLibraryW。
4.根据权利要求3所述的方法,其特征在于:检查系统API函数的返回地址之前,还包括:注入dll到被检测的进程中。
5.根据权利要求4所述的方法,其特征在于:通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出的过程为:
若返回地址在系统API函数调用栈上,或者返回地址所在虚拟内存页是非protect,则缓冲区溢出。
6.根据权利要求5所述的方法,其特征在于:在HOOK处理函数中,根据esp/rsp寄存器获取到调用的系统API函数的返回值retAddr并根据retAddr的情况,判断被检测进程是否存在缓冲溢出:
情况一:检查返回地址retAddr所在的虚拟内存页面是否为protecte page,如果不是,则存在缓冲区堆溢出,调用ExitProcess结束被检测进程;
情况二:获取当前函数调用堆栈栈底地址StackBottomAddr和栈顶地址StackTopAddr,如果返回地址retAddr在这两个地址的区间,则存在缓冲区栈溢出,调用ExitProcess结束被检测进程;
情况三:其他情况直接返回。
7.一种缓冲区溢出检测系统,其特征在于,包括:调用装置、判断装置;调用装置与判断装置连接;
所述调用装置,用于当发生缓冲区溢出时,恶意代码会调用系统API函数;
所述判断装置,用于通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出。
8.根据权利要求7所述的系统,其特征在于:所述调用装置,还用于当发生缓冲区溢出时,恶意代码会调用系统API函数的过程为:Shell code Call Win32系统API函数即LoadLibraryW;其中,LoadLibraryW为函数名。
9.根据权利要求8所述的系统,其特征在于:所述判断装置,还用于通过HOOK恶意代码调用的系统API函数的过程为:通过动态链接库DLL使用Microsoft Detours库,HOOK操作系统关键的API函数即HOOK_LoadLibraryW。
10.根据权利要求9所述的系统,其特征在于:所述判断装置,还用于通过HOOK恶意代码调用的系统API函数并检查系统API函数的返回地址并根据反馈地址,判断缓冲区是否溢出的过程为:若返回地址在系统API函数调用栈上,或者返回地址所在虚拟内存页是非protect,则缓冲区溢出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮(北京)电子信息产业有限公司,未经浪潮(北京)电子信息产业有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310583180.6/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种预成型焊片喷涂用高浓度助焊剂
- 下一篇:一种高温钎焊用铁镍基钎料