CN101551773B - 符号错误和赋值截断的二进制漏洞检测定位装置 - Google Patents
符号错误和赋值截断的二进制漏洞检测定位装置 Download PDFInfo
- Publication number
- CN101551773B CN101551773B CN2009100258845A CN200910025884A CN101551773B CN 101551773 B CN101551773 B CN 101551773B CN 2009100258845 A CN2009100258845 A CN 2009100258845A CN 200910025884 A CN200910025884 A CN 200910025884A CN 101551773 B CN101551773 B CN 101551773B
- Authority
- CN
- China
- Prior art keywords
- information
- submodule
- assignment
- operand
- symbol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 48
- 238000000605 extraction Methods 0.000 claims description 30
- 239000000284 extract Substances 0.000 claims description 15
- 230000006870 function Effects 0.000 claims description 14
- 230000007704 transition Effects 0.000 claims description 14
- 238000006243 chemical reaction Methods 0.000 claims description 9
- 238000007689 inspection Methods 0.000 claims description 3
- 238000003780 insertion Methods 0.000 claims description 2
- 230000037431 insertion Effects 0.000 claims description 2
- 238000007493 shaping process Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 7
- 238000002474 experimental method Methods 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013518 transcription Methods 0.000 description 3
- 230000035897 transcription Effects 0.000 description 3
- 238000000151 deposition Methods 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 238000010998 test method Methods 0.000 description 1
Images
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种符号错误和赋值截断的二进制漏洞检测定位装置,该装置包括以下单元:用于将二进制代码转换成VEX中间代码的代码转换单元;信息记录单元,所述信息记录单元包括:用于记录变量的类型信息的类型信息提取模块;用于记录变量的最新值的数值信息提取模块;用于记录赋给变量最新值的指令地址的指令地址提取模块;检测定位单元,所述检测定位单元包括:符号错误检测模块以及赋值截断检测模块。本发明提出的符号错误和赋值截断的二进制漏洞检测定位装置,不需要源代码,全自动的运行,不需要人工干预,能准确定位漏洞代码。
Description
技术领域
本发明涉及整形漏洞检测定位装置,特别是一种符号错误和赋值截断的二进制漏洞检测定位装置。
背景技术
整形漏洞是著名的软件安全漏洞之一,在C或C++程序中尤为突出。整形漏洞分为四类:(1)整形下溢出(IntegerUnderflow);(2)整形上溢出(IntegerOverflow);(3)符号转换错误(SignednessError);(4)赋值截断(AssignmentTruncation)。2006年CVE(CommonVulnerabilityandExploit)指出缓冲区溢出漏洞(bufferoverflow)呈下降趋势,而其他一些漏洞呈上升趋势,如:符号转换错误,赋值截断等。目前,虽然已有了一些针对整形溢出的漏洞检测工具,但是针对符号转换错误和赋值截断漏洞还没有很好的检测和定位工具。符号转换错误和赋值截断漏洞往往会触发很严重的攻击,如任意代码执行(arbitrarycodeexecution),拒绝服务攻击(denialofservice),等等。
符号转换错误和赋值截断漏洞一般与程序语义相关,因此很难被检测和定位。程序员经常忽视,甚至对这两种整形漏洞知之甚少。标准编译器,如GCC,对符号转换错误和赋值截断漏洞也不能提供警告或错误信息。更糟糕的是,这两种整形漏洞常常与某些攻击方法结合,共同产生内存错误。现有的安全工具几乎都不能检测并定位符号转换错误和赋值截断漏洞。
此外,与有源代码的程序相比,二进制程序缺少显式的类型信息,需要从某些特定的操作和函数定义中获得这些信息。
特别是,目前针对符号转换错误和赋值截断漏洞的检测工具很少,而且至少存在如下的缺点之一:(1)需要源代码(2)人工参与(3)不能检测和定位符号转换错误和赋值截断漏洞。目前,在二进制程序分析工具中,典型的工具是Valgrind,它将二进制代码转换成VEX中间代码,并在此中间代码上进行分析。在Valgrind上,已经出现了许多功能插件,如内存错误分析插件Memcheck,类型引用插件Catchconv等。本发明基于Valgrind以及Catchconv,检测和定位符号错误和赋值截断。相关资料参见:N.Nethercote and J.Seward.Valgrind:A framework for heavy weight dynamic binary instrumentation.In Proceedings of PLDI 2007,San Diego,California,USA,June 2007或者J.Seward and N.Nethercote.Using valgrind to detect undefined value errors with bit-precision.In Proceedings of the USENIX05 Annual Technical Conference,Anaheim,California,USA,April 2005或者D.A.Molnar and D.Wagner.Catchconv:Symbolic execution and run-time type inference for integer conversion errors.Technical Report UCB/EECS-2007-23,EECS Department,Universityof California,Berkeley,February 2007。
发明内容
发明目的:本发明的目的在于针对现有技术的不足,提供一种符号错误和赋值截断的二进制漏洞检测定位装置,对二进制程序进行保护。
技术方案:本发明公开了一种符号错误和赋值截断的二进制漏洞检测定位装置,该装置包括以下单元:
用于将二进制代码转换成VEX中间代码的代码转换单元;
信息记录单元,所述信息记录单元包括:用于记录变量的类型信息的类型信息提取模块;用于记录变量的最新值的数值信息提取模块;用于记录赋给变量最新值的指令地址的指令地址提取模块;
检测定位单元,所述检测定位单元包括:符号错误检测模块以及赋值截断检测模块。
本发明中,优选地,所述代码转换单元通过二进制分析工具Valgrind将二进制代码转换成VEX中间代码;包括:对寄存器的读/写指令、对内存的读/写指令、对临时变量的读/写指令、对常量的读指令。
本发明中,优选地,所述二进制分析工具Valgrind插入类型引用插件Catchconv后,所述类型信息提取模块的类型信息通过符号跳转指令、库函数定义以及操作数的大小信息获得。
本发明中,优选地,类型信息提取模块提取的类型信息包括宽度信息和符号信息;所述宽度信息包括:8bits、16bits、32bits;符号信息包括:有符号和无符号。
本发明中,优选地,所述数值信息提取模块将内存写指令所写的数值记录下来,并且通过内存读指令,寄存器读写指令,临时变量读写指令,将数值传递给寄存器以及临时变量。本发明为每个内存变量、寄存器以及临时变量分配额外的数值空间,用来存放它们的最新值。所谓最新值,是指程序执行时刻该操作数的值。分两种情况记录数值信息:(1)当遇到内存写指令时,将所写的数值作为该内存变量最新值记录下来;(2)当遇到内存、寄存器或临时变量读指令时,先将读出的数值保存,并将该数值通过寄存器、临时变量写指令,暂时保存在寄存器或临时变量中,该数值会随着赋值,运算等操作传播。
本发明中,优选地,所述指令地址提取模块记录内存写操作所对应的指令地址。该地址信息由VEX语句Ist_Imark提供,记录在该指令对应的操作数中。本发明为每个内存变量、寄存器以及临时变量分配额外的地址空间,用来记录指令地址。
本发明的工作流程可以分为三步:首先,由代码转换单元20将二进制码转换成中间语言VEX,代码转换单元是由二进制分析工具Valgrind完成的。其次,程序运行时,根据所执行的VEX语句和表达式,由信息记录单元21提取和记录相应的信息。最后,由检测定位单元22根据记录的信息,检测和定位漏洞。
本发明中,优选地,所述符号错误检测模块包括以下步骤:
步骤S100,在信息记录单元提取操作数的符号类型信息前,检查该操作数已有的符号类型信息;
步骤S200,判断操作数的符号类型信息是否有类型冲突;所谓类型冲突是指某个操作数既被用做无符号数又被用做有符号数。
例如,int a;[1]if(a>15)…[2]memcpy(buf1,buf2,a);
当执行到memcpy这条语句时,a所对应的操作数的类型有冲突。因为在[1]处,a被当成有符号数使用,而在[2]处,由memcpy库函数定义,a被当成无符号数使用。因此存在符号类型冲突。
如果操作数的符号类型信息有冲突,则执行步骤S600;如果操作数的符号类型信息没有冲突,则执行下一步;
步骤S300,由信息记录单元从二元运算中的比较操作以及库函数定义中提取操作数的符号类型信息;
步骤S400,判断操作数符号类型信息是否有冲突;即步骤S300提取的符号类型信息和步骤S100检查的操作数已有的符号类型信息是否存在类型冲突;
步骤S500,如果操作数的类型不存在冲突,则根据步骤S300提取的符号类型信息重新设置并记录操作数的类型信息;
步骤S600,如果存在操作数类型冲突,先记录该操作数的类型信息有冲突;然后根据信息记录单元记录的操作数最新值判断是否为负数;如果为负数,则判定是符号错误漏洞,执行步骤S700;如果为正数,执行步骤S800程序正常运行;即如果a是负数,则检测到符号类型错误,并定位该漏洞。如果a为正数,则程序正常运行。
步骤S700,根据信息记录单元提取的指令地址信息,并由信息记录单元记录该指令地址信息。该地址信息就是符号转换错误的定位点,报告该地址,符号转换错误的检测和定位完成。
步骤S800,指程序没有检测到符号转换错误,继续正常运行。
本发明中,优选地,所述赋值截断检测模块包括以下步骤:
步骤S900,判断所执行的VEX指令是否为寄存器读操作Iex_GET;
步骤S1000,判断从寄存器读出的值是否超过寄存器读所能读出的最大值;所述最大值,是指寄存器读对应的宽度类型(8bits、16bits、32bits)所能表示的最大值。例如,8bits对应的最大值是256。如果超出最大值,执行步骤S1100;否则执行步骤S1300继续运行;
步骤S1100,判断是否下一条指令为内存写指令Ist_STORE;如果为内存写指令,则执行步骤S1200;
步骤S1200,根据信息记录单元提取的指令地址信息,并由信息记录单元记录该指令地址信息。该地址信息就是赋值截断的定位点,报告该地址,赋值截断的检测和定位完成。
步骤S1300,指程序没有检测到赋值截断,继续正常运行。
有益效果:本发明提出了一种符号错误和赋值截断的二进制漏洞检测定位装置,不需要源代码,全自动的运行,不需要人工干预,能准确定位漏洞代码。本发明选取了一些具有代表性的软件对本发明进行测试。实验的主要目的是评价本发明检测符号转换错误和赋值截断这两种整形漏洞的有效性。实验平台:IntelPentium(R)DualE21802.00GHz,256MBmemory和Linux2.6.15kernel。测试程序均由gcc-3.4.0编译,以及glibc2.3.2连接。
本发明选择了如下软件评估检测漏洞的有效性:VLCMediaPlayer0.8.6i,OpenSSH2.1.1,GNURadius1.2等。由于整形漏洞很难被模拟,在实验中,本发明从每个软件中提取漏洞代码,加上导致错误的输入,转换成相对较小的,独立的漏洞程序进行检测。这些程序在本发明的监控下运行。
图8是有效性测试结果,值得指出的是,本发明可以检测到GNURadius1.2中的符号转换错误,这个漏洞是由指针别名引起的,而由指针别名引起的整形漏洞一般很难被安全工具检测到。
与目前的整形漏洞检测工具相比,本发明至少有五个的特点:(1)二进制级:不需要源代码。(2)实时检测:程序运行时检测整形漏洞。(3)可以检测由指针别名引起的漏洞。(4)低误报和漏报率。(5)能够准确定位漏洞代码。
附图说明
下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述和/或其他方面的优点将会变得更加清楚。
图1是本发明的装置的系统结构示意图。
图2是VEX指令集构成图。
图3是本发明类型信息提取模块的结构示意图。
图4是本发明由比较操作提取符号类型信息示意图。
图5是本发明由库函数定义提取符号类型信息示意图。
图6是本发明符号错误检测模块的实施流程示意图。
图7是本发明赋值截断检测模块的实施流程示意图;其中,MaxU表示n位无符号整数的最大值。
图8是本发明有效性测试结果。
具体实施方式
本发明建立在Valgrind3.2.2和Catchconv0.1的基础上。
图1是本发明的系统结构示意图。如图1所示,本发明所述的符号错误和赋值截断的二进制漏洞检测定位装置10包括:代码转换单元20,信息记录单元21,检测定位单元22。
所述代码转换单元20,利用Valgrind将二进制代码转换成与平台无关的中间代码VEX,所述VEX是一种精简指令集,VEX指令集的语句有10种,表达式有12种。图2是VEX指令集。如图2所示,VEX指令集分为语句和表达式。语句和表达式的区别是,语句修改寄存器/内存/临时变量,而表达式仅使用寄存器/内存/临时变量的值。在VEX指令集中数据对象分为四类:寄存器,内存,临时变量,常量。对寄存器的读写指令为:Ist_Put,Iex_Get。对内存的读写指令为:Ist_Store,Iex_Load。对临时变量的读写指令为:Ist_tmp,Iex_tmp。对常量的读指令为Iex_Const。
所述信息记录单元21根据程序运行时执行到的VEX指令,记录三类信息来检测和定位漏洞:(1)变量的类型信息,(2)变量的最新值(3)赋给变量最新值的指令地址。这四类信息分别由“类型信息提取模块211”,“数值信息提取模块212”以及“指令地址提取模块213”记录。
所述类型信息提取模块211是建立在Valgrind插件Catchconv基础上。类型信息可以分为宽度信息和符号信息。宽度信息可以分为,8bits,16bits,32bits.符号信息可以分为,有符号和无符号。图3是类型信息提取模块211的结构示意图。如图3所示,宽度信息可以从寄存器/内存/临时变量读写指令中提取。符号信息可以从二元运算中的比较操作以及库函数定义中提取。
图4是从二元运算中的比较操作提取符号类型信息的示意图。图中“<n>”可以取8,16,32,分别表示8bits,16bits,32bits。根据VEX的有符号比较和无符号比较操作,提取符号类型信息。并将符号类型信息记录在比较操作对应的操作数上。
图5是从库函数定义提取符号类型信息的示意图。本发明从C库函数中选取了较常用的22个函数,并且根据定义的函数参数的符号类型,提取符号类型信息。并且记录在参数对应的操作数上。
所述数值信息提取模块212,将内存写指令Ist_Store所写的数值记录下来,并且通过内存读指令,寄存器读写指令,临时变量读写指令,将数值传递给寄存器,临时变量。本发明为每个内存变量、寄存器以及临时变量分配额外的数值空间,用来存放它们的最新值。所谓最新值,是指程序执行时刻该操作数的值。分两种情况记录数值信息:(1)当遇到内存写指令时,将所写的数值作为该内存变量最新值记录下来;(2)当遇到内存、寄存器或临时变量读指令时,先将读出的数值保存,并将该数值通过寄存器、临时变量写指令,暂时保存在寄存器或临时变量中,该数值会随着赋值,运算等操作传播。
所述地址提取模块213,将内存写操作Ist_Store所对应的指令地址Ist_Mark记录下来。为后面漏洞的定位提供信息。
所述检测定位单元22利用信息记录单元记录的信息,制定策略对两类整形漏洞进行检测和定位。具体包括针对符号错误检测和定位的符号错误检测模块221,以及针对赋值截断检测和定位的赋值截断检测模块222。
图6是符号错误检测模块221的实施流程示意图。
如图6所示,步骤S100,在信息记录单元21提取操作数的符号类型信息前,检查该操作数已有的符号类型信息。
步骤S200,判断操作数符号类型信息是否有类型冲突。所谓类型冲突是指某个操作数既被用做无符号数有被用做有符号数。
例如,int a;[1]if(a>15)…[2]memcpy(buf1,buf2,a);
当执行到memcpy这条语句时,a所对应的操作数的类型有冲突。因为在[1]处,a被当成有符号数使用,而在[2]处,由memcpy库函数定义,a被当成无符号数使用。因此存在符号类型冲突。
如果操作数的符号类型信息有冲突,则执行步骤S600,根据信息记录单元21记录的操作数最新值判断是否为负数。如果为负数,则是符号错误漏洞,执行步骤S700,根据信息记录单元21提取的指令地址信息,定位漏洞。如果为正数,执行步骤S800继续运行;如果操作数的符号类型信息没有冲突,则执行步骤S300,由信息记录单元21从二元运算中的比较操作以及库函数定义中提取操作数的符号类型信息。
步骤S400,判断操作数符号类型信息是否有冲突。即步骤S300提取的符号类型信息和步骤S100检查的操作数已有的符号类型信息是否存在类型冲突。
步骤S500,如果操作数的类型不存在冲突,则根据S300提取的符号类型信息重新设置并记录操作数的类型信息。
步骤S600,如果发现操作数类型冲突,先记录该操作数的类型信息有冲突。然后根据信息记录单元21记录的操作数最新值判断是否为负数。如果为负数,则判定是符号错误漏洞,执行步骤S700,并根据信息记录单元21提取的指令地址信息,定位漏洞。如果为正数,执行步骤S800继续运行。仍以上面的例子为例,如果a是负数,则检测到符号类型错误,并定位该漏洞。如果a为正数,则程序正常运行。
图7是赋值截断检测模块224的实施流程示意图。在VEX中,当把一个小于32位的数值写到内存变量时,这个值连同宽度类型信息由“GET”表达式传给寄存器变量,然后再由“STORE”操作存入内存变量。因此本发明对寄存器变量的读操作“GET”进行检查,判断数值是否在其类型范围之内,如果不在,再检测下一个操作是否为“STORE”。
如图7所示,步骤S900判断所执行的VEX指令是否为寄存器读“GET”操作,接着步骤S1000判断从寄存器读出的值是否超过寄存器读”GET”所能读出的最大值MaxU,MaxU表示n位无符号整数的最大值。。如果超出最大值,执行步骤S1100判断是否下一条指令为内存写“STORE”。如果为内存写“STORE”指令,则执行步骤S1300,根据信息记录单元21提取的指令地址信息,定位漏洞。否则执行步骤S1200继续运行。
本发明提供了一种符号错误和赋值截断的二进制漏洞检测定位装置的思路及方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部份均可用现有技术加以实现。
Claims (6)
1.一种符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,该装置包括以下单元:
用于将二进制代码转换成VEX中间代码的代码转换单元(20);
信息记录单元(21),所述信息记录单元(21)包括:用于记录变量的类型信息的类型信息提取模块(211);用于记录变量的最新值的数值信息提取模块(212);用于记录赋给变量最新值指令地址的指令地址提取模块(213);
检测定位单元(22),所述检测定位单元(22)包括:符号错误检测模块(221)以及赋值截断检测模块(222);
所述符号错误检测模块(221)包括:
子模块100,在信息记录单元提取操作数的符号类型信息前,检查该操作数已有的符号类型信息;
子模块200,判断操作数的符号类型信息是否有类型冲突;所谓类型冲突是指某个操作数既被用做无符号数又被用做有符号数;
如果操作数的符号类型信息有冲突,则调用子模块600;如果操作数的符号类型信息没有冲突,则调用子模块300;
子模块300,由信息记录单元从二元运算中的比较操作以及库函数定义中提取操作数的符号类型信息;
子模块400,判断操作数符号类型信息是否有冲突;即子模块300提取的符号类型信息和子模块100检查的操作数已有的符号类型信息是否存在类型冲突;
子模块500,如果操作数的类型不存在冲突,则根据子模块300提取的符号类型信息重新设置并记录操作数的类型信息;
子模块600,如果存在操作数类型冲突,先记录该操作数的类型信息有冲突;然后根据信息记录单元记录的操作数最新值判断是否为负数;如果为负数,则判定是符号错误漏洞,调用子模块700;如果为正数,调用子模块800程序正常运行;
子模块700,根据信息记录单元提取的指令地址信息,并由信息记录单元记录该指令地址信息;该地址信息就是符号转换错误的定位点,报告该地址,符号转换错误的检测和定位完成;
子模块800,指没有检测到符号转换错误,继续正常运行;
所述赋值截断检测模块(222)包括:
子模块900,判断所执行的VEX指令是否为寄存器读操作Iex_GET;
子模块1000,判断从寄存器读出的值是否超过寄存器读所能读出的最大值;所述最大值,是指寄存器读对应的宽度类型所能表示的最大值;如果超出最大值,调用子模块1100;否则调用子模块1300;
子模块1100,判断是否下一条指令为内存写指令Ist_STORE;如果为内存写指令,则调用子模块1200;
子模块1200,根据信息记录单元提取的指令地址信息,并由信息记录单元记录该指令地址信息;该地址信息就是赋值截断的定位点,报告该地址,赋值截断的检测和定位完成;
子模块1300,指没有检测到赋值截断,继续正常运行。
2.根据权利要求1所述的符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,所述代码转换单元(20)通过二进制分析工具Valgrind将二进制代码转换成VEX中间代码;所述VEX中间代码包括:对寄存器的读/写指令、对内存的读/写指令、对临时变量的读/写指令、对常量的读指令。
3.根据权利要求2所述的符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,所述二进制分析工具Valgrind插入类型引用插件Catchconv后,所述类型信息提取模块(211)的类型信息通过符号跳转指令、库函数定义以及操作数的大小信息获得。
4.根据权利要求3所述的符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,类型信息提取模块(211)提取的类型信息包括宽度信息和符号信息;所述宽度信息包括:8bits、16bits、32bits;符号信息包括:有符号和无符号。
5.根据权利要求4所述的符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,所述数值信息提取模块(212)将内存写指令所写的数值记录下来,并且通过内存读指令,寄存器读写指令,临时变量读写指令,将数值传递给寄存器以及临时变量。
6.根据权利要求4所述的符号错误和赋值截断的二进制漏洞检测定位装置,其特征在于,所述指令地址提取模块(213)记录内存写操作所对应的指令地址。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100258845A CN101551773B (zh) | 2009-03-12 | 2009-03-12 | 符号错误和赋值截断的二进制漏洞检测定位装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009100258845A CN101551773B (zh) | 2009-03-12 | 2009-03-12 | 符号错误和赋值截断的二进制漏洞检测定位装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101551773A CN101551773A (zh) | 2009-10-07 |
CN101551773B true CN101551773B (zh) | 2012-04-25 |
Family
ID=41156022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009100258845A Expired - Fee Related CN101551773B (zh) | 2009-03-12 | 2009-03-12 | 符号错误和赋值截断的二进制漏洞检测定位装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101551773B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018101575A1 (ko) * | 2016-11-29 | 2018-06-07 | 한국전력공사 | 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814053B (zh) * | 2010-03-29 | 2013-03-13 | 中国人民解放军信息工程大学 | 一种基于功能模型的二进制代码漏洞发现方法 |
CN103914304B (zh) * | 2014-04-10 | 2017-02-22 | 国家电网公司 | 一种基于sap平台的不同结构类型参数转换方法 |
CN107885505B (zh) * | 2017-09-30 | 2021-05-14 | 浙江福山电子科技有限责任公司 | 一种代码定位方法 |
CN110909358A (zh) * | 2019-10-22 | 2020-03-24 | 上海安智信息科技有限公司 | 一种基于动静态分析的整形漏洞检测方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005038428A (ja) * | 2003-07-16 | 2005-02-10 | Microsoft Corp | 脆弱性のあるファイルの自動的な検出およびパッチ |
CN101079003A (zh) * | 2006-05-23 | 2007-11-28 | 北京金元龙脉信息科技有限公司 | 对计算机bios固件进行安全风险检测的系统和方法 |
-
2009
- 2009-03-12 CN CN2009100258845A patent/CN101551773B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005038428A (ja) * | 2003-07-16 | 2005-02-10 | Microsoft Corp | 脆弱性のあるファイルの自動的な検出およびパッチ |
CN1577272B (zh) * | 2003-07-16 | 2011-01-12 | 微软公司 | 易受攻击文件的自动检测和修复 |
CN101079003A (zh) * | 2006-05-23 | 2007-11-28 | 北京金元龙脉信息科技有限公司 | 对计算机bios固件进行安全风险检测的系统和方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018101575A1 (ko) * | 2016-11-29 | 2018-06-07 | 한국전력공사 | 바이너리 코드 기반 임베디드 소프트웨어 취약점 분석 장치 및 그 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN101551773A (zh) | 2009-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8539475B2 (en) | API backward compatibility checking | |
US8875110B2 (en) | Code inspection executing system for performing a code inspection of ABAP source codes | |
US9274923B2 (en) | System and method for stack crawl testing and caching | |
CN101853200B (zh) | 一种高效动态软件漏洞挖掘方法 | |
US8397104B2 (en) | Creation of test plans | |
CN100440163C (zh) | 对计算机程序进行运行时分析的方法和系统 | |
CN102402479B (zh) | 用于静态分析的中间表示结构 | |
CN101551773B (zh) | 符号错误和赋值截断的二进制漏洞检测定位装置 | |
CN102081719B (zh) | 基于动态污染传播的软件安全测试系统及方法 | |
CN109583200A (zh) | 一种基于动态污点传播的程序异常分析方法 | |
CN104156311B (zh) | 一种基于cpu模拟器的嵌入式c语言目标码级单元测试方法 | |
CN103257919A (zh) | 脚本程序检查方法和装置 | |
CN111427792A (zh) | 测试方法、装置、电子设备和可读存储介质 | |
CN112346987A (zh) | 基于Xmind的测试用例生成转换方法及系统 | |
CN112925524A (zh) | 一种检测驱动程序中不安全直接存储器访问的方法及装置 | |
US7624304B2 (en) | Defect detection for integers | |
CN111428247A (zh) | 一种对计算机漏洞库进行改进的方法 | |
CN113434385A (zh) | 一种针对软件模型检查工具的测试用例自动生成方法和系统 | |
CN101510241B (zh) | 整形溢出漏洞的二进制检测定位装置 | |
CN116627804A (zh) | 基于人工智能的测试方法、系统、电子设备及存储介质 | |
Ren et al. | A dynamic taint analysis framework based on entity equipment | |
CN114741700B (zh) | 基于符号化污点分析的公共组件库漏洞可利用性分析方法及装置 | |
CN114579431B (zh) | 一种基于混合分析的除零错误检测方法 | |
CN113805861B (zh) | 基于机器学习的代码生成方法、代码编辑系统及存储介质 | |
CN116340081A (zh) | 一种基于硬件虚拟化的riscv内存访问违例检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120425 Termination date: 20150312 |
|
EXPY | Termination of patent right or utility model |