• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 11
    • 下载费用:30 金币  

    网上重庆时时彩骗局吗: 一种基于函数调用的缓冲区溢出漏洞动态检测方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201510170817.8

    申请日:

    2015.04.10

    公开号:

    CN104766015A

    公开日:

    2015.07.08

    当前法律状态:

    授权

    有效性:

    有权

    法律详情: 授权|||实质审查的生效IPC(主分类):G06F 21/57申请日:20150410|||公开
    IPC分类号: G06F21/57(2013.01)I 主分类号: G06F21/57
    申请人: 北京理工大学
    发明人: 胡昌振; 薛静锋; 周琦超; 李坚; 单纯
    地址: 100081北京市海淀区中关村南大街5号
    优先权:
    专利代理机构: 北京理工大学专利中心11120 代理人: 高燕燕; 仇蕾安
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201510170817.8

    授权公告号:

    ||||||

    法律状态公告日:

    2018.02.13|||2015.08.05|||2015.07.08

    法律状态类型:

    授权|||实质审查的生效|||公开

    摘要

    本发明公开了一种基于函数调用的缓冲区溢出漏洞动态检测方法,包括如下步骤:首先获取被测程序的函数调用指令地址和返回指令地址,构建输入参数、运行被测程序;当函数调用发生,获取基址寄存器中的值EBP_B;在函数调用结束时,获取基址寄存器中的值EBP_A;若EBP_B≠EBP_A,则记录漏洞并报警;若EBP_B=EBP_A,则判断无漏洞;重复上述过程直至被测程序运行结束,继续获取该次运行的函数调用信息,与软件异常行为模型进行匹配,若匹配,记录可能漏洞;若不匹配,则该次输入下程序的行为没有体现出缓冲区溢出漏洞的特征。构造大量输入重复检测。该方法能够进行动态检测,并提高检测效率。

    权利要求书

    权利要求书
    1.  一种基于函数调用的缓冲区溢出漏洞动态检测方法,其特征在于,包括如下步骤:
    步骤一、将被测程序的可执行文件进行反汇编,然后通过静态分析,从反汇编所得到的结果中获取函数调用指令地址和返回指令地址;
    其中所述函数调用指令地址仅保留被测程序内部的函数调用指令;
    步骤二、在所述函数调用地址和返回指令地址处设置断点,构建一定数量的输入参数,并在每个输入参数下运行被测程序执行如下步骤三~步骤四,获取在每个输入参数下,本次运行过程中漏洞动态检测结果以及在该输入参数下是否具有缓冲区溢出漏洞的可能:
    步骤三、当被测程序运行到函数调用地址时,函数调用发生,在断点处暂停,获取基址寄存器中的值EBP_B;在函数调用结束时,在断点处暂停,获取基址寄存器中的值EBP_A;
    若在函数调用结束时,EBP_B≠EBP_A,则该函数在本次函数调用过程中存在缓冲区溢出漏洞,记录该漏洞并报警;若在函数调用结束时,EBP_B=EBP_A,则该函数在本次函数调用过程中没有发生缓冲区溢出;
    判断被测程序运行是否结束,如果结束,以所记录的漏洞作为当前输入参数下漏洞动态检测结果,并继续执行步骤四,如果没结束,继续执行被测程序,返回步骤三;
    步骤四、通过本步骤获取当输入参数不能确切造成程序缓冲区溢出时,被测程序在进行函数调用时存在缓冲区溢出漏洞的可能:
    被测程序运行结束后,获取该次运行的函数调用信息,将所获取的函数调用信息与软件异常行为模型进行匹配,若函数调用信息与软件异常行为模型匹配,则该函数存在缓冲区溢出漏洞的可能,在匹配位置处记录该漏洞;若函数 调用信息与软件异常行为模型不匹配,则判断在该输入参数下,被测程序的函数调用行为特征没有表现出缓冲区溢出漏洞的可能;
    本方法中所记录的漏洞即为漏洞动态检测结果;
    所述软件异常行为模型为依据漏洞特征条件、通过有限自动机建立的模型。

    2.  如权利要求1所述的一种基于函数调用的缓冲区溢出漏洞动态检测方法,所述一定数量的输入参数包括异常情况,并覆盖程序的可执行路径。

    3.  如权利要求1所述的一种基于函数调用的缓冲区溢出漏洞动态检测方法,其特征在于,所述软件异常行为模型具体为M={Q,Σ,δ,q0,F};
    其中:Q表示有限状态集;Σ表示输入字符表,包括漏洞特征模式产生的特征条件;δ为状态转移函数;q0为初始状态;F为终结状态。

    4.  如权利要求3所述的一种基于函数调用的缓冲区溢出漏洞动态检测方法,其特征在于,所述漏洞特征模式产生的条件包括以下a、b、c和d四种:
    a)调用了数据拷贝函数;
    b)数据拷贝前没有进行长度比较;
    c)数据拷贝函数参数不是常量;
    d)数据拷贝函数的参数外部可控。

    5.  如权利要求3所述的一种基于函数调用的缓冲区溢出漏洞动态检测方法,其特征在于,所述数据拷贝函数包括字符串拷贝函数、内存复制函数、格式化字符串函数、格式转换函数、读取文件函数、获取用户输入函数以及读取环境变量函数。

    6.  如权利要求3所述的一种基于函数调用的缓冲区溢出漏洞动态检测方法,其特征在于,所述d)中数据拷贝函数的参数外部可控具体为数据拷贝函数调用参数中拷贝的源数据和拷贝长度与用户的输入相关。

    说明书

    说明书一种基于函数调用的缓冲区溢出漏洞动态检测方法
    技术领域
    本发明属于本发明涉及一种缓冲区溢出漏洞的检测方法,属于信息安全技术领域。
    背景技术
    随着计算机技术的迅速发展,人类社会的信息化程度越来越高,整个社会的政治、经济、军事、文化以及其他领域对计算机信息系统的依赖程度也越来越高。在这种情况下,计算机系统的安全性得到了人们越来越多的关注。然而,大型软件、系统的编写需要许许多多程序员共同完成,他们将一个软件或系统分成若干板块,分工编写,然后再汇总,测试;最后再修补、发布,因此在软件中存在安全漏洞几乎是不可避免的。软件安全漏洞指软件设计实现过程中被引入的、在数据访问或行为逻辑等方面的缺陷。这些漏洞常常被攻击者利用,从而使程序行为违背一定的安全策略?;谏鲜鲈?,目前对软件安全漏洞检测技术的研究越来越受到重视。
    按照检测过程中是否需要执行程序的标准,软件安全漏洞检测技术分为动态检测和静态检测。
    (1)静态检测
    静态检测方法大致可分为四类:
    第一类是基于词法分析的检测方法。对应于早期检测工具,例如Grep工具等。它出现的时间较长,且发展较成熟,其优点是:漏洞特征以数据的形式独立于分析程序存在,可以灵活扩展;另外,词法分析可以保证较好的执行效率。但它的缺点非常明显:以数据形式存在的特征库并不能对漏洞进行充分、 完整的描述,从而造成漏洞信息收集的不完整,也限制了与之配合的相关算法仅能进行词法分析,因此影响了检测能力。
    第二类是注释驱动的约束分析和检测方法。它虽然引入了语法分析,却是基于程序验证系统的思想和方法进行的。这要求操作人员对检测目标非常熟悉,甚至需人工编写程序规范和注释,因此检测的自动化程度较低。David Evans以及David Larochelle所研究的Splint以及基于Splint所作的改进都是属于这种方法。
    第三类方法为将源码的特征进行抽象、建模,将漏洞检测问题转化为约束分析和求解的问题。它们一般基于已有的程序分析工具(如商业软件codesurfer)实现,其优点是:这些程序分析工具的功能非常强大,能够生成抽象语法树、函数调用关系图、控制流图甚至指针指向关系图等语法、语义信息。使用工具提供的编程接口,可以直接基于这些信息进行分析,从而减小了设计上的复杂度。缺点是:生成的抽象语法树等信息中包含许多杂乱信息,不利于分析,而且,对一个很小的编译单位,大概能产生其1000倍的抽象语法树文本,最终产生的抽象语法树会占据整个内存。对于复杂的源程序,这些方法的检测效率将大大降低。
    第四类方法为反汇编扫描,反汇编对于不公开源代码的程序来说往往是最有效的发现安全漏洞的办法。例如,利用一种优秀的反汇编程序IDA就可以得到目标程序的汇编脚本语言,再对汇编出来的脚本语言使用扫描的方法,从而进一步识别一些可疑的汇编代码序列。通过反汇编来寻找系统漏洞的好处是从理论上讲,不管多么复杂的问题总是可以通过反汇编来解决的。它的缺点也是显然的,这种方法费时费力,对人员的技术水平要求很高,同样不能检测到程序动态运行过程中产生的安全漏洞。
    (2)动态检测
    动态检测是在程序运行过程中注入测试数据,通过对程序的运行环境(包括环境变量、内存、堆和栈等)进行分析,观察程序运行是否正常、程序行为是否满足要求,来检测程序是否存在漏洞。动态检测技术的优点是不直接面对源代码,不需要修改目标程序源代码,这在一定程度上提高程序的保密性。但其明显的不足是动态检测技术对输入的依赖性,只有当特定的输入是程序执行到危险点时,漏洞才会被发现,因此,定位不准确、漏报率高。
    发明内容
    有鉴于此,本发明提供了一种基于函数调用的缓冲区溢出漏洞动态检测方法,能够进行动态检测,并提高检测效率。
    为了达到上述目的,本发明的技术方案包括如下步骤:
    步骤一、将被测程序的可执行文件进行反汇编,然后通过静态分析,从反汇编所得到的结果中获取函数调用指令地址和返回指令地址;其中函数调用指令地址仅保留被测程序内部的函数调用指令。
    步骤二、在函数调用地址和返回指令地址处设置断点,构建一定数量的输入参数,并在每个输入参数下运行被测程序执行如下步骤三~步骤四,获取在每个输入参数下,函数调用过程中是否发生缓冲区溢出以及是否具有缓冲区溢出漏洞的可能:
    步骤三、当被测程序运行到函数调用地址时,函数调用发生,在断点处暂停,获取基址寄存器中的值EBP_B;在函数调用结束时,在断点处暂停,获取基址寄存器中的值EBP_A。
    若在函数调用结束时,EBP_B≠EBP_A,则该函数在本次函数调用过程中存在缓冲区溢出漏洞,记录该漏洞并报警;若在函数调用结束时,EBP_B=EBP_A,则该函数在本次函数调用过程中没有缓冲区溢出漏洞。
    判断被测程序运行是否结束,如果结束,以所记录的漏洞作为当前输入参数下漏洞动态检测结果,并继续执行步骤四,如果没结束,继续执行被测程序,返回步骤三。
    步骤四、通过本步骤获取当输入参数不能确切造成程序缓冲区溢出时,被测程序在进行函数调用时存在缓冲区溢出漏洞的可能:
    被测程序运行结束后,获取该次运行的函数调用信息,将所获取的函数调用信息与软件异常行为模型进行匹配,若函数调用信息与软件异常行为模型匹配,则该程序存在缓冲区溢出漏洞的可能,在匹配位置记录该漏洞;若函数调用信息与软件异常行为模型不匹配,则该输入参数下,程序表现出的函数调用行为特征没有表现出缓冲区溢出漏洞的可能;本方法中所记录的漏洞即为漏洞动态检测结果;其中软件异常行为模型为依据漏洞特征条件、通过有限自动机建立的模型。
    进一步地,软件异常行为模型具体为M={Q,Σ,δ,q0,F};其中:Q表示有限状态集;Σ表示输入字符表,包括漏洞特征模式产生的特征条件;δ为状态转移函数;q0为初始状态;F为终结状态。
    进一步地,漏洞特征模式产生的条件包括以下a、b、c和d四种:
    a)调用了数据拷贝函数;b)数据拷贝前没有进行长度比较;c)数据拷贝函数参数不是常量;d)数据拷贝函数的参数外部可控。
    进一步地,数据拷贝函数包括字符串拷贝函数、内存复制函数、格式化字符串函数、格式转换函数、读取文件函数、获取用户输入函数以及读取环境变量函数。
    进一步地,d)中数据拷贝函数的参数外部可控具体为数据拷贝函数调用参数中拷贝的源数据和拷贝长度与用户的输入相关。
    有益效果:
    本发明在缓冲区溢出漏洞的原理分析的基础上,从函数调用的角度出发提出了基于栈寄存器值EBP的漏洞检测过程。该检测过程测精度高,误报率低;同时为了降低该检测方法对输入的依赖性,本发明又结合软件行为建模思想和缓冲区溢出漏洞的危险拷贝函数行为特征构造了软件异常行为模型,在通过前面的漏洞检测模型检测后,对软件的每次完整运行获取其函数调用相关信息,与异常行为模型进行匹配,进行二次检测,弥补了检测模型漏报率高的缺点。
    附图说明
    图1为本发明方法流程图;
    图2堆栈操作示意图;
    图3为实施例中有限自动机模型的状态转移图。
    具体实施方式
    下面结合附图并举实施例,对本发明进行详细描述。
    本发明的目的是针对上述已有技术存在的不足,提出一种基于函数调用序列的缓冲区溢出漏洞检测方法。本发明的基本思想是:堆栈(或者说缓冲区)同函数调用是息息相关的,在进行函数调用的同时,会在原先进程堆栈的基础上产生一个新的与该函数相关的局部堆栈用以存放函数的局部变量;在该函数返回时,局部堆栈会被销毁。以函数调用为判定单位,以保存在函数堆栈中原先的EBP值为判定的基准,对比函数调用发生时的EBP的值和函数调用结束时EBP的值,来判断该次调用是否发生了缓冲区溢出,每一次发生函数调用就判断一次,若前后的值不等,则报警。同时,程序每运行一次,使用工具监测并记录程序该次运行的函数调用序列,其代表了程序的一条可执行路径。针对记录下来的每个函数调用序列用定义好的缓冲区溢出漏洞模式进行匹配,若匹配成功, 则报警。与传统的以单个函数调用为基本单位判断寄存器的值得方法比较,本方法能降低动态检测过程中对输入数据的依赖程度,结合了Fuzzing的挖掘技术和错误模式匹配技术,提高了检测率。
    本实施例中的方法流程如图1所示,具体包括如下步骤:
    步骤一、对于无源码的二进制可执行文件,为了获取程序何时调用函数,函数何时返回,需要进行简单的静态预处理。将目标代码反汇编,在反汇编的结果中找到并记录调用或是返回的指令对应的指令地址(call和ret),也即软件在载入内存之后的内存虚拟地址。通过动态跟踪及调试的方法,利用静态预处理中记录的函数调用和返回的指令地址。
    其中函数调用指令地址仅保留被测程序内部的函数调用指令;
    步骤二、,可以在将程序载入之后,在这些函数调用或是返回的地址处设置断点,当被测试的程序运行到这些函数调用或是函数返回的地址时,那么将会激发一个可以被捕获的异常,同时程序的也将这些断点处被暂停。
    构建一定数量的输入参数,尽可能考虑异常情况并尽量覆盖程序的可执行路径,执行步骤三和四。异常情况是为了造成函数调用处发生缓冲区溢出,覆盖可执行路径能使步骤四中获取的函数调用信息更全面,匹配结果更精确。
    并在每个输入参数下运行被测程序执行如下步骤三~步骤四,获取在每个输入参数下,本次运行过程中漏洞动态检测结果以及在该输入参数下是否具有缓冲区溢出漏洞的可能:
    步骤三、当被测程序运行到函数调用地址时,在断点处暂停,执行函数调用;函数调用的过程中将采用漏洞模型进行漏洞检测,其中该漏洞模型的建立是在分析缓冲区溢出原理的基础上进行的。
    缓冲区是程序运行时计算机内存中的一块连续的地址空间,它用于保存给定类型的数据。在一些高级语言的函数调用中,缓冲区是在堆栈上进行分配的。 堆栈是一个后进先出的队列,它的增长方向与内存的增长方向正好相反,具体如图2所示。在正常情况下,处理器在函数调用时,将函数的参数、返回地址(即进行函数调用的那条指令的下一条指令的地址)及基址寄存器EBP(该寄存器存储的内存地址为函数在参数和变量压栈之前的内存地址)压入堆栈中,然后把当前的栈指针ESP作为新的基地址。如果函数有局部变量,则函数会把堆栈指针ESP减去某个值,为需要的动态局部变量腾出所需的内存空间,函数内使用的缓冲区就分配在腾出的这段内存空间上。函数返回时,弹出EBP恢复堆栈到函数调用前的地址,弹出返回地址到EIP以继续执行原程序。
    假设软件接收一个长度超过缓冲区长度的字符串,由于堆栈的生长方向与内存的生长方向正好相反,EBP和EIP的值就有可能被覆盖。一般情况下会导致程序运行失败,但如果覆盖EIP的值刚好是攻击代码的内存地址,则程序会执行攻击代码,这就是缓冲区溢出漏洞的原理。
    根据以上原理,出现了多种防止返回地址被覆盖的检测方式。StackGuard将一个随机canary值放到栈桢中返回地址的前面,如果返回地址被改变,canary值也会被修改,因此,当函数返回时,检测该canary值,如发生变化,与先前保存的副本不一样,则可判定为发生了缓冲区溢出攻击。StackShield对此做了改进,将返回地址在一个安全的地方保存下来,并在调用返回前进行返回地址恢复。这两类工具更着重缓冲区溢出攻击的防止上,而不是对缓冲区溢出漏洞本身的分析。从漏洞本身的检测上,返回地址一旦被覆盖,EBP的值一定会被覆盖,在不是被人为恶意构造攻击的情况下,EBP的值一定改变了。所以直接检测EBP的值既能达到检测目的,又节省了时间空间,提高了效率。所以本文提出一种检测模型,漏洞模型的一次判定过程具体过程如下:
    在函数调用发生时,获取基址寄存器中的值EBP_B;在函数调用结束时,获取基址寄存器中的值EBP_A。
    若在函数调用结束时,EBP_B≠EBP_A,则该函数在本次函数调用过程中存在缓冲区溢出漏洞,记录该漏洞并报警;若在函数调用结束时,EBP_B=EBP_A,则该函数在本次函数调用过程中没有缓冲区溢出漏洞;
    判断被测程序运行是否结束,如果结束,则继续执行步骤四,如果没结束,则重复执行步骤三;
    步骤四、被测程序运行结束后,获取该次运行的函数调用信息,将所获取的函数调用信息与软件异常行为模型进行匹配,若函数调用信息与软件异常行为模型匹配,则该程序存在缓冲区溢出漏洞的可能,在匹配位置记录该漏洞;若函数调用信息与软件异常行为模型不匹配,则该输入参数下,程序表现出的函数调用行为特征没有表现出缓冲区溢出漏洞的可能;
    本方法中所记录的漏洞即为漏洞动态检测结果。
    本实施例中函数调用信息的获取具体过程如下:本发明针对的是无源码的二进制可执行文件,为了获取程序的函数调用信息,可以采用逆向分析的方法,反编译成一种中间语言再进行分析,但这种方法耗时同时对分析人员有很高的要求,而且对于复杂的软件,分析难度会非常大。本发明采用动态监测的方法,来获取程序的函数调用信息,用不同的输入尽可能覆盖程序的所有可执行路径,分别获取函数调用的时序关系。
    本发明采用SoftSnoop对可二进制执行程序进行动态监控,并获取日志。SoftSnoop是一款功能强大的程序辅助破解工具,函数调用监控工具??梢圆痘翊尤我荒?椴牡饺我荒?榈腁pi调用,包括动态加载的???;可以在调用Api之前输出Api名称,Api所属???,Api参数及调用这个Api的地址;可以在Api返回之后输出Api返回值,可以附着到正在运行的目标进程并捕获其Api,可以随意终止和继续捕获,目标进程不受影响。最后,我们对获取的日志进行分析,提取需要的函数调用信息,并和异常行为模型进行模式匹配,通过匹配 结果来判断软件是否存在缓冲区溢出漏洞。
    本实施例中,软件异常行为模型为依据漏洞特征条件、通过有限自动机建立的模型。
    其中危险拷贝函数调用的漏洞特征具体为:软件行为是指软件运行表现形式和状态演变的过程,在与计算机的交互中,人类的行为就是通过软件的行为来实现的。软件行为分析技术,其核心就是对行为建模。对软件行为建模的研究分散在各个具体的应用领域,针对问题领域的不同建立的软件行为模型也就自然而然地侧重于描述软件不同方面的行为特征。软件发生缓冲区溢出时也会表现出一定的行为特征,从这些特征入手可以建立异常行为模型。
    软件程序中缺乏对缓冲区边界的检查是造成缓冲区溢出的根本原因,C库函数中有些字符串操作函数、打印类函数等涉及数据拷贝的函数在其实现时出于效率的考虑,没有加入边界检查代码。进行程序设计时,这类函数使用频度很高,如果程序员在使用这些函数时也没有进行边界检查,很容易出现缓冲区溢出的情况,我们把这类函数称作危险拷贝函数。这些危险拷贝函数的调用时序以及参数等上下文信息中体现了缓冲区溢出漏洞的一些固有特征模式,我们利用这些特征模式来建立缓冲区溢出漏洞的异常行为模型。
    危险拷贝函数调用的漏洞模式通常有以下属性:
    a)调用了危险数据拷贝函数。表1中列出了常见的可能导致缓冲区溢出的数据拷贝函数,并根据函数的功能对其进行了分类。
    表1数据拷贝函数
    函数分类代表函数字符串拷贝函数strcpy、strcat、strncpy、strncat、lstrcpy内存复制函数memcpy、memmove、memccpy、bcopy、CopyMemory
    格式化字符串sprintf、vsprintf、swprintf、wsprintf格式转换scanf、sscanf、vscanf、MultiByteToWideChar读取文件fgets、fread获取用户输入gets、getchar读取环境变量getenv、GetEnvironmentStrings、GetEnvironmentVariable
    b)数据拷贝前没有进行长度比较,具体表现为没有调用strlen或sizeof等计算长度并进行比较。
    c)数据拷贝函数参数不是常量。
    d)数据拷贝函数的参数外部可控。如果危险拷贝函数的参数中源数据或者拷贝长度与外部输入完全匹配,则可以判定该参数外部输入可控,而如果源数据或拷贝长度与当次输入只有部分匹配或没有明显匹配关系,则记录软件当次运行过程中函数调用的参数及序列信息到知识库,同时在知识库中查找同一个执行路径下的记录(通过对函数调用序列的匹配来判断软件的执行路径,若除参数外调用序列相同则为同一条执行路径),若参数的变化随外部输入变化呈现规律性变化,则判定参数外部输入可控。
    依据上述漏洞模式所建立的软件异常行为模型如下:
    有限自动机是有限计算的基本模型,是许多形式化规格、验证方法的基本模型,它常用于行为建模中。最为突出的特点就是FSA非常适合描述包含有限个状态,并且事件的发生将导致状态迁移的这类系统。本文利用上述总结的漏洞特征模式与有限自动机理论建立了软件异常行为模型:
    M={Q,Σ,δ,q0,F};
    其中:Q表示有限状态集;Σ表示输入字符表,包括漏洞特征模式产生的特征条件;δ为状态转移函数;q0为初始状态;F为终结状态。
    状态转移图如图3所示。
    图3中字符a1a2,a3,…,an分别表示参数不含长度的危险拷贝函数;k1k2,k3,…,kn分别表示参数含长度的危险拷贝函数;b表示“没有调用危险拷贝函数”;c表示“源字串非常量”;d表示“源字串为常量”;e表示“源字串或拷贝长度外部输入可控”;f表示“源字串或拷贝长度外部输入不可控”;g表示“拷贝长度非常量”;h表示“拷贝长度为常量”;i表示“调用了长度比较函数”;j表示“没有调用长度比较函数”。q5表示不存在缓冲区溢出可能,q6表示存在缓冲区溢出可能。
    综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的?;し段?。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的?;し段е?。

    关 键 词:
    一种 基于 函数 调用 缓冲区 溢出 漏洞 动态 检测 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:一种基于函数调用的缓冲区溢出漏洞动态检测方法.pdf
    链接地址://www.4mum.com.cn/p-5894766.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03