c语言 溢出缓冲区溢出

您现在的位置: &
缓冲区溢出的四种保护方法
缓冲区溢出的四种保护方法
  目前有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。    一、编写正确的代码    编写正确的代码 是一件非常有意义但耗时的工作,特别像编写C语言那种具有容易出错倾向的程序(如:字符串的零结尾),这种风格是由于追求性能而忽视正确性的传统引起的。尽管花了很长的时间使得人们知道了如何编写安全的程序组具有安全漏洞的程序依旧出现。因此人们开发了一些工具和技术来帮助经验不足的程序员编写安全正确的程序。    最简单的方法就是用grep来搜索源代码中容易产生漏洞的库的调用,比如对strcpy和sprintf的调用,这两个函数都没有检查输入参数的长度。事实上,各个版本C的标准库均有这样的问题存在。为了寻找一些常见的诸如缓冲区溢出和操作系统竞争条件等漏洞,一些代码检查小组检查了很多的代码。然而依然有漏网之鱼存在。尽管采用了strcpy和sprintf这些替代函数来防止缓冲区溢出的发生,但是由于编写代码的问题,仍旧会有这种情况发生。比如lprm程序就是最好的例子,虽然它通过了代码的安全检查,但仍然有缓冲区溢出的问题存在。    为了对付这些问题,人们开发了一些高级的查错工具,如faultinjection等。这些工具的目的在于通过人为随机地产生一些缓冲区溢出来寻找代码的安全漏洞。还有一些静态分析工具用于侦测缓冲区溢出的存在。虽然这些工具可以帮助程序员开发更安全的程序,但是由于C语言的特点,这些工具不可能找出所有的缓冲区溢出漏洞。所以,侦错技术只能用来减少缓冲区溢出的可能,并不能完全地消除它的存在,除非程序员能保证他的程序万元一失。    二、非执行的缓冲区    通过使被攻击程序的数据段地址空间不可执行,从而使得攻击者不可能执行被植入被攻击程序输入缓冲区的代码,这种技术被称为非执行的缓冲区技术。事实上,很多老的Unix系统都是这样设计的,但是近来的Unix和MS Windows系统为实现更好的性能和功能,往往在数据段中动态地放人可执行的代码。所以为了保持程序的兼容性不可能使得所有程序的数据段不可执行。但是我们可以设定堆栈数据段不可执行,这样就可以最大限度地保证了程序的兼容性。Linux和Solaris都发布了有关这方面的内核补丁。因为几乎没有任何合的程序会在堆栈中存放代码,这种做法几乎不产生任何兼容性问题,除了在Linux中的两个特例,这时可执行的代码必须被放入堆栈中:    1.信号传递  Linux通过向进程堆栈释放代码然后引发中断来执行在堆栈中的代码进而实现向进程发送Unix信号.非执行缓冲区的补丁在发送信号的时候是允许缓冲区可执行的.    2.GCC的在线重用  研究发现gcc在堆栈区里放置了可执行的代码以便在线重用。然而,关闭这个功能并不产生任何问题.只有部分功能似乎不能使用。非执行堆栈的保护可以有效地对付把代码植入自动变量的缓冲区溢出攻击,而对于其他形式的攻击则没有效果。通过引用一个驻留的程序的指针,就可以跳过这种保护措施。其他的攻击可以采用把代码植入堆或者静态数据段中来跳过保护。    三、数组边界检查    植入代码引起缓冲区溢出是一个方面,扰乱程序的执行流程是另一个方面。不像非执行缓冲区保护,数组边界检查完全没有了缓冲区溢出的产生和攻击。这样,只要数组不能被溢出,溢出攻击也就无从谈起。为了实现数组边界检查,则所有的对数组的读写操作都应当被检查以确保对数组的操作在正确的范围内。最直接的方法是检查所有的数组操作,但是通常可以来用一些优化的技术来减少检查的次数。目前有以下的几种检查方法:    1、Compaq C编译器  Compaq公司为Alpha CPU开发的C编译器支持有限度的边界检查(使用―check_bounds参数)。这些限制是:只有显示的数组引用才被检查,比如“a[3]”会被检查,而“*(a+3)"则不会。由于所有的C数组在传送的时候是指针传递的,所以传递给函数的的数组不会被检查。带有危险性的库函数如strcpy不会在编译的时候进行边界检查,即便是指定了边界检查。在C语言中利用指针进行数组操作和传递是非常频繁的,因此这种局限性是非常严重的。通常这种边界检查用来程序的查错,而且不能保证不发生缓冲区溢出的漏洞。    2、Jones&Kelly:C的数组边界检查  Richard Jones和Paul Kelly开发了一个gcc的补丁,用来实现对C程序完全的数组边界检查。由于没有改变指针的含义,所以被编译的程序和其他的gcc模块具有很好的兼容性。更进一步的是,他们由此从没有指针的表达式中导出了一个“基”指针,然后通过检查这个基指针来侦测表达式的结果是否在容许的范围之内。当然,这样付出的性能上的代价是巨大的:对于一个频繁使用指针的程序,如向量乘法,将由于指针的频繁使用而使速度慢30倍。这个编译器目前还很不成熟,一些复杂的程序(如elm)还不能在这个上面编译、执行通过。然而在它的一个更新版本之下,它至少能编译执行ssh软件的加密软件包,但其实现的性能要下降12倍。    3、Purify:存储器存取检查  Purify是C程序调试时查看存储器使用的工具而不是专用的安全工具。Purify使用"目标代码插入"技术来检查所有的存储器存取。通过用Purify连接工具连接,可执行代码在执行的时候带来的性能的损失要下降3―5倍。    4、类型――安全语言  所有的缓冲区溢出漏洞都源于C语言的类型安全。如果只有类型―安全的操作才可以被允许执行,这样就不可能出现对变量的强制操作。如果作为新手,可以推荐使用具有类型―安全的语言如JAVA和ML。    但是作为Java执行平台的Java虚拟机是C程序.因此攻击JVM的一条途径是使JVM的缓冲区溢出。因此在系统中采用缓冲区溢出防卫技术来使用强制类型―安全的语言可以收到预想不到的效果。    四、程序指针完整性检查    程序指针完整性检查和边界检查有略微的不同。与防止程序指针被改变不同,程序指针完整性检查在程序指针被引用之前检测到它的改变。因此,即便一个攻击者成功地改变程序的指针,由于系统事先检测到了指针的改变,因此这个指针将不会被使用。与数组边界检查相比,这种方法不能解决所有的缓冲区溢出问题;采用其他的缓冲区溢出方法就可以避免这种检测。但是这种方法在性能上有很大的优势,而且兼容性也很好。    l、手写的堆栈监测  Snarskii为FreeBSD开发丁一套定制的能通过监测cpu堆栈来确定缓冲区溢出的libc。这个应用完全用手工汇编写的,而且只保护libc中的当前有效纪录函数.这个应用达到了设计要求,对于基于libc库函数的攻击具有很好的防卫,但是不能防卫其它方式的攻击。    2、堆栈保护  堆栈保护是一种提供程序指针完整性检查的编译器技术.通过检查函数活动纪录中的返回地址来实现。堆栈保护作为gcc的一个小的补丁,在每个函数中,加入了函数建立和销毁的代码。加入的函数建立代码实际上在堆栈中函数返回地址后面加了一些附加的字节。而在函数返回时,首先检查这个附加的字节是否被改动过,如果发生过缓冲区溢出的攻击,那么这种攻击很容易在函数返回前被检测到。但是,如果攻击者预见到这些附加字节的存在,并且能在溢出过程中同样地制造他们.那么它就能成功地跳过堆栈保护的检测。通常.我们有如下两种方案对付这种欺骗:    1.终止符号  利用在C语言中的终止符号如o(null,CR,LF,―1(Eof)等这些符号不能在常用的字符串函数中使用,因为这些函数一旦遇到这些终止符号,就结束函数过程了。    2.随机符号  利用一个在函数调用时产生的一个32位的随机数来实现保密,使得攻击者不可能猜测到附加字节的内容.而且,每次调用附加字节的内容都在改变,也无法预测。通过检查堆栈的完整性的堆栈保护法是从Synthetix方法演变来的。Synthetix方法通过使用准不变量来确保特定变量的正确性。这些特定的变量的改变是程序实现能预知的,而且只能在满足一定的条件才能可以改变。这种变量我们称为准不变量。Synthetix开发了一些工具用来保护这些变量。攻击者通过缓冲区溢出而产生的改变可以被系统当做非法的动作。在某些极端的情况下,这些准不变量有可能被非法改变,这时需要堆栈保护来提供更完善的保护了。实验的数据表明,堆栈保护对于各种系统的缓冲区溢出攻击都有很好的保护作用.并能保持较好的兼容性和系统性能。分析表明,堆栈保护能有效抵御现在的和将来的基于堆栈的攻击。堆栈保护版本的Red Hat Linux 5.1已经在各种系统上运行了多年,包括个人的笔记本电脑和工作组文件服务器。    3、指针保护    在堆栈保护设计的时候,冲击堆栈构成了缓冲区溢出攻击的常见的一种形式。有人推测存在一种模板来构成这些攻击(在1996年的时候)。从此,很多简单的漏洞被发现,实施和补丁后,很多攻击者开始用更一般的方法实施缓冲区溢出攻击。指针保护是堆钱保护针对这种情况的一个推广。通过在所有的代码指针之后放置附加字节来检验指针在被调用之前的合法性,如果检验失败,会发出报警信号和退出程序的执行,就如同在堆栈保护中的行为一样。这种方案有两点需要注意:    (1)附加字节的定位  附加字节的空间是在被保护的变量被分配的时候分配的,同时在被保护字节初始化过程中被初始化。这样就带来了问题:为了保持兼容性,我们不想改变被保护变量的大小,因此我们不能简单地在变量的结构定义中加入附加字。还有,对各种类型也有不同附加字节数目。    (2)查附加字节  每次程序指针被引用的时候都要检查附加字节的完整性。这个也存在问题因为“从存取器读”在编译器中没有语义,编译器更关心指针的使用,而各种优化算法倾向于从存储器中读人变量.还有随着变量类型的不同,读入的方法也各自不同。到目前为止,只有很少―部分使用非指针变量的攻击能逃脱指针保护的检测。但是,可以通过在编译器上强制对某一变量加入附加字节来实现检测,这时
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-缓冲区溢出详解
缓冲区溢出是一种非常普遍、非常危险的,在各种操作系统、应用软件中广泛存在。利用缓冲区溢出攻击,可以导致程序运行失败、系统当机、重新启动等后果。更为严重的是,可以利用它执行非授权指令,甚至可以取得系统特权,进而进行各种非法操作。缓冲区溢出攻击有多种英文名称:buffer overflow,buffer overrun,smash the stack,trash the stack,scribble the stack, mangle the stack, memory leak,它们指的都是同一种攻击手段。第一个缓冲区溢出攻击--Morris蠕虫,发生在十年前,它曾造成了全世界6000多台网络服务器瘫痪。
本文将分析缓冲区溢出的原理;研究各种类型的缓冲区溢出漏洞和攻击手段;最后,还将着重研究各种防御手段,用来消除这些漏洞所造成的影响。
一、 缓冲区溢出的原理
通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆栈,使程序转而执行其它指令,以达到攻击的目的。造成缓冲区溢出的原因是程序中没有仔细检查用户输入的参数。例如下面程序:
void function(char *str) {
char buffer[16];
strcpy(buffer,str);
上面的strcpy()将直接吧str中的内容copy到buffer中。这样只要str的长度大于16,就会造成buffer的溢出,使程序运行出错。存在象strcpy这样的问题的标准函数还有strcat(),sprintf(),vsprintf(),gets(),scanf()等。
当然,随便往缓冲区中填东西造成它溢出一般只会出现&分段错误&(Segmentation fault),而不能达到攻击的目的。最常见的手段是通过制造缓冲区溢出使程序运行一个用户shell,再通过shell执行其它命令。如果该程序属于root且有suid权限的话,攻击者就获得了一个有root权限的shell,可以对系统进行任意操作了。
缓冲区溢出攻击之所以成为一种常见安全攻击手段其原因在于缓冲区溢出漏洞太普遍了,并且易于实现。而且,缓冲区溢出成为远程攻击的主要手段其原因在于缓冲区溢出漏洞给予了攻击者他所想要的一切:植入并且执行攻击代码。被植入的攻击代码以一定的权限运行有缓冲区溢出漏洞的程序,从而得到被攻击主机的控制权。
在1998年Lincoln实验室用来评估入侵检测的的5种远程攻击中,有2种是缓冲区溢出。而在1998年CERT的13份建议中,有9份是是与缓冲区溢出有关的,在1999年,至少有半数的建议是和缓冲区溢出有关的。在Bugtraq的调查中,有2/3的被调查者认为缓冲区溢出漏洞是一个很严重的安全问题。
缓冲区溢出漏洞和攻击有很多种形式,会在第二节对他们进行描述和分类。相应地防卫手段也随者攻击方法的不同而不同,将在第四节描述,它的内容包括针对每种攻击类型的有效的防卫手段。
二、缓冲区溢出的漏洞和攻击
缓冲区溢出攻击的目的在于扰乱具有某些特权运行的程序的功能,这样可以使得攻击者取得程序的控制权,如果该程序具有足够的权限,那么整个主机就被控制了。一般而言,攻击者攻击root程序,然后执行类似&exec(sh)&的执行代码来获得root权限的shell。为了达到这个目的,攻击者必须达到如下的两个目标:
1. 在程序的地址空间里安排适当的代码。
2. 通过适当的初始化寄存器和内存,让程序跳转到入侵者安排的地址空间执行。
根据这两个目标来对缓冲区溢出攻击进行分类。在二.1节,将描述攻击代码是如何放入被攻击程序的地址空间的。在二.2节,将介绍攻击者如何使一个程序的缓冲区溢出,并且执行转移到攻击代码(这个就是&溢出&的由来)。在二.3节,将综合前两节所讨论的代码安排和控制程序执行流程的技术。
二.1 在程序的地址空间里安排适当的代码的方法
有两种在被攻击程序地址空间里安排攻击代码的方法:
1、植入法:
攻击者向被攻击的程序输入一个字符串,程序会把这个字符串放到缓冲区里。这个字符串包含的资料是可以在这个被攻击的硬件平台上运行的指令序列。在这里,攻击者用被攻击程序的缓冲区来存放攻击代码。缓冲区可以设在任何地方:堆栈(stack,自动变量)、堆(heap,动态分配的内存区)和静态资料区。
2、利用已经存在的代码:
有时,攻击者想要的代码已经在被攻击的程序中了,攻击者所要做的只是对代码传递一些参数。比如,攻击代码要求执行&exec (&/bin/sh&)&,而在libc库中的代码执行&exec (arg)&,其中arg使一个指向一个字符串的指针参数,那么攻击者只要把传入的参数指针改向指向&/bin/sh&。
二.2 控制程序转移到攻击代码的方法
所有的这些方法都是在寻求改变程序的执行流程,使之跳转到攻击代码。最基本的就是溢出一个没有边界检查或者其它弱点的缓冲区,这样就扰乱了程序的正常的执行顺序。通过溢出一个缓冲区,攻击者可以用暴力的方法改写相邻的程序空间而直接跳过了系统的检查。
分类的基准是攻击者所寻求的缓冲区溢出的程序空间类型。原则上是可以任意的空间。实际上,许多的缓冲区溢出是用暴力的方法来寻求改变程序指针的。这类程序的不同之处就是程序空间的突破和内存空间的定位不同。主要有以下三种:
1、活动纪录(Activation Records):
每当一个函数调用发生时,调用者会在堆栈中留下一个活动纪录,它包含了函数结束时返回的地址。攻击者通过溢出堆栈中的自动变量,使返回地址指向攻击代码。通过改变程序的返回地址,当函数调用结束时,程序就跳转到攻击者设定的地址,而不是原先的地址。这类的缓冲区溢出被称为堆栈溢出攻击(Stack Smashing Attack),是目前最常用的缓冲区溢出攻击方式。
2、函数指针(Function Pointers):
函数指针可以用来定位任何地址空间。例如:&void (* foo)()&声明了一个返回值为void的函数指针变量foo。所以攻击者只需在任何空间内的函数指针附近找到一个能够溢出的缓冲区,然后溢出这个缓冲区来改变函数指针。在某一时刻,当程序通过函数指针调用函数时,程序的流程就按攻击者的意图实现了。它的一个攻击范例就是在Linux系统下的superprobe程序。
3、长跳转缓冲区(Longjmp buffers):
在C语言中包含了一个简单的检验/恢复系统,称为setjmp/longjmp。意思是在检验点设定&setjmp(buffer)&,用&longjmp(buffer)&来恢复检验点。然而,如果攻击者能够进入缓冲区的空间,那么&longjmp(buffer)&实际上是跳转到攻击者的代码。象函数指针一样,longjmp缓冲区能够指向任何地方,所以攻击者所要做的就是找到一个可供溢出的缓冲区。一个典型的例子就是Perl 5.003的缓冲区溢出漏洞;攻击者首先进入用来恢复缓冲区溢出的的longjmp缓冲区,然后诱导进入恢复模式,这样就使Perl的解释器跳转到攻击代码上了。
二.3代码植入和流程控制技术的综合分析
最简单和常见的缓冲区溢出攻击类型就是在一个字符串里综合了代码植入和活动纪录技术。攻击者定位一个可供溢出的自动变量,然后向程序传递一个很大的字符串,在引发缓冲区溢出,改变活动纪录的同时植入了代码。这个是由Levy指出的攻击的模板。因为C在习惯上只为用户和参数开辟很小的缓冲区,因此这种漏洞攻击的实例十分常见。
代码植入和缓冲区溢出不一定要在在一次动作内完成。攻击者可以在一个缓冲区内放置代码,这是不能溢出的缓冲区。然后,攻击者通过溢出另外一个缓冲区来转移程序的指针。这种方法一般用来解决可供溢出的缓冲区不够大(不能放下全部的代码)的情况。
如果攻击者试图使用已经常驻的代码而不是从外部植入代码,他们通常必须把代码作为参数调用。举例来说,在libc(几乎所有的C程序都要它来连接)中的部分代码段会执行&exec(something)&,其中somthing就是参数。攻击者然后使用缓冲区溢出改变程序的参数,然后利用另一个缓冲区溢出使程序指针指向libc中的特定的代码段。
三、 缓冲区溢出攻击的实验分析
2000年1月,Cerberus 安全小组发布了微软的IIS 4/5存在的一个缓冲区溢出漏洞。攻击该漏洞,可以使Web服务器崩溃,甚至获取超级权限执行任意的代码。目前,微软的IIS 4/5 是一种主流的Web服务器程序;因而,该缓冲区溢出漏洞对于网站的安全构成了极大的威胁;它的描述如下:
向IIS提出一个HTTP请求,在域名(或IP地址)后,加上一个文件名,该文件名以&.htr&做后缀。于是IIS认为客户端正在请求一个&.htr&文件,&.htr&扩展文件被映像成ISAPI(Internet Service API)应用程序,IIS会复位向所有针对&.htr&资源的请求到 ISM.DLL程序 ,ISM.DLL 打开这个文件并执行之。
浏览器提交的请求中包含的文件名存储在局部变量缓冲区中,若它很长,超过600个字符时,会导致局部变量缓冲区溢出,覆盖返回地址空间,使IIS崩溃。更进一步,在如图1所示的2K缓冲区中植入一段精心设计的代码,可以使之以超级权限运行。
四、缓冲区溢出攻击的防范方法
缓冲区溢出攻击占了远程网络攻击的绝大多数,这种攻击可以使得一个匿名的Internet用户有机会获得一台主机的部分或全部的控制权。如果能有效地消除缓冲区溢出的漏洞,则很大一部分的安全威胁可以得到缓解。
目前有四种基本的方法保护缓冲区免受缓冲区溢出的攻击和影响。在四.1中介绍了通过操作系统使得缓冲区不可执行,从而阻止攻击者植入攻击代码。在四.2中介绍了强制写正确的代码的方法。在四.3中介绍了利用编译器的边界检查来实现缓冲区的保护。这个方法使得缓冲区溢出不可能出现,从而完全消除了缓冲区溢出的威胁,但是相对而言
您对本文章有什么意见或着疑问吗?请到您的关注和建议是我们前行的参考和动力&&
您的浏览器不支持嵌入式框架,或者当前配置为不显示嵌入式框架。C语言程序设计中的缓冲区溢出问题--《安徽教育学院学报》2005年03期
C语言程序设计中的缓冲区溢出问题
【摘要】:缓冲区溢出问题是广泛存在的安全隐患,也经常被黑客和病毒利用,C语言是目前被广泛使用的程序设计语言,它同样存在缓冲区溢出问题。本文分析了缓冲区溢出的基本原理和攻击技术,提出了一些在C语言里程序编写过程中防止缓冲区溢出的方法。
【作者单位】:
【关键词】:
【基金】:
【分类号】:TP312【正文快照】:
1 前言缓冲区溢出为类型的安全漏洞是最为常见的,也是被黑客最多利用的攻击漏洞。C语言是一种广泛流行的计算机高级语言,主要适合于系统描述语言,也经常用来写应用程序,当前流行的操作系统如Windows,linux,Unix等都主要是用C语言编写的。在C语言中,静态变量被分配在数据段中
欢迎:、、)
支持CAJ、PDF文件格式,仅支持PDF格式
【引证文献】
中国硕士学位论文全文数据库
陈铭;[D];电子科技大学;2007年
柳崧轶;[D];吉林大学;2007年
【共引文献】
中国期刊全文数据库
康峰;;[J];电脑开发与应用;2006年10期
,冯登国;[J];计算机工程与应用;2003年33期
,钟宏;[J];微电子学与计算机;2001年06期
赵振国,蔡皖东;[J];微电子学与计算机;2005年04期
傅翠娇;曹庆华;;[J];现代电子技术;2006年01期
刘嫔,唐朝京,张森强;[J];信息与电子工程;2004年04期
中国博士学位论文全文数据库
熊家军;[D];华中科技大学;2004年
张永铮;[D];哈尔滨工业大学;2006年
中国硕士学位论文全文数据库
唐洪英;[D];重庆大学;2002年
王景新;[D];中国人民解放军国防科学技术大学;2002年
戚正伟;[D];西北工业大学;2002年
沈伟锋;[D];西北工业大学;2004年
廖小燕;[D];上海海事大学;2004年
杨铭;[D];华中科技大学;2004年
蔡洪民;[D];广东工业大学;2005年
徐正松;[D];上海海事大学;2005年
谭永红;[D];武汉理工大学;2006年
徐岩柏;[D];北京邮电大学;2006年
【同被引文献】
中国期刊全文数据库
王海峰;夏洪雷;;[J];福建电脑;2006年07期
乐光学,赵嫦花;[J];佳木斯大学学报(自然科学版);2003年04期
尚明磊,黄皓;[J];计算机工程;2005年12期
俞旭;罗军勇;郎韶华;;[J];计算机应用;2006年S1期
余建军;韩双霞;黄云龙;;[J];计算机工程与设计;2006年08期
鄢喜爱;杨金民;;[J];网络安全技术与应用;2006年03期
郭颖,钱渊;[J];信息与电子工程;2004年02期
中国硕士学位论文全文数据库
柳崧轶;[D];吉林大学;2007年
【相似文献】
中国期刊全文数据库
;[J];计算机与网络;2010年02期
肖新光;;[J];程序员;2010年09期
崔展齐;王林章;李宣东;;[J];计算机学报;2011年06期
毛敏芹;祝标太;;[J];计算机与网络;2010年Z1期
;[J];;年期
;[J];;年期
;[J];;年期
;[J];;年期
;[J];;年期
;[J];;年期
中国重要会议论文全文数据库
姚欣洪;宫云战;杨朝红;;[A];第六届中国测试学术会议论文集[C];2010年
杨洋;帅春燕;江建慧;;[A];第六届中国测试学术会议论文集[C];2010年
王勇;王婷婷;;[A];全国计算机安全学术交流会论文集(第二十三卷)[C];2008年
白哥乐;宫云战;杨朝红;;[A];第五届中国测试学术会议论文集[C];2008年
陈建民;陈飞舟;;[A];第十七次全国计算机安全学术交流会暨电子政务安全研讨会论文集[C];2002年
杨柳;李陶深;;[A];2008'中国信息技术与应用学术论坛论文集(二)[C];2008年
黎筱彦;谢永强;宫敏;刘正国;;[A];第十八次全国计算机安全学术交流会论文集[C];2003年
王建东;曾庆凯;;[A];2011年全国通信安全学术会议论文集[C];2011年
王云扬;;[A];全国第八届工业工程与企业信息化学术会议论文集[C];2004年
王午鸣;;[A];江苏省通信学会2004年学术年会论文集[C];2004年
中国重要报纸全文数据库
M[N];网络世界;2007年
;[N];中国计算机报;2007年
张莹;[N];中国新闻出版报;2009年
;[N];中国计算机报;2011年
张晓兵;[N];中国计算机报;2007年
高岚;[N];中国计算机报;2007年
田梦;[N];计算机世界;2009年
那罡;[N];中国计算机报;2009年
中国博士学位论文全文数据库
崔展齐;[D];南京大学;2011年
程绍银;[D];中国科学技术大学;2009年
李仁见;[D];国防科学技术大学;2011年
陈石坤;[D];国防科学技术大学;2010年
中国硕士学位论文全文数据库
周雷;[D];上海交通大学;2010年
姚璐宁;[D];北京邮电大学;2012年
徐磊;[D];吉林大学;2011年
刘圣卓;[D];中国人民解放军信息工程大学;2003年
任华;[D];解放军信息工程大学;2007年
张明军;[D];国防科学技术大学;2004年
王磊;[D];西安电子科技大学;2004年
柳崧轶;[D];吉林大学;2007年
高攀;[D];电子科技大学;2005年
曾颖;[D];解放军信息工程大学;2007年
&快捷付款方式
&订购知网充值卡
400-819-9993
《中国学术期刊(光盘版)》电子杂志社有限公司
地址:北京清华大学 84-48信箱 知识超市公司
出版物经营许可证 新出发京批字第直0595号
同方知网数字出版技术股份有限公司
订购热线:400-819-82499
在线咨询:
传真:010-
京公网安备74号C语言缓冲区溢出
[问题点数:30分,结帖人erqi_chen]
C语言缓冲区溢出
[问题点数:30分,结帖人erqi_chen]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2009年8月 C/C++大版内专家分月排行榜第三2009年7月 C/C++大版内专家分月排行榜第三2009年2月 C/C++大版内专家分月排行榜第三
2009年1月 C/C++大版内专家分月排行榜第二
2009年8月 C/C++大版内专家分月排行榜第三2009年7月 C/C++大版内专家分月排行榜第三2009年2月 C/C++大版内专家分月排行榜第三
2009年8月 C/C++大版内专家分月排行榜第三2009年7月 C/C++大版内专家分月排行榜第三2009年2月 C/C++大版内专家分月排行榜第三
2009年1月 C/C++大版内专家分月排行榜第二
2009年1月 C/C++大版内专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 c语言清除缓冲区 的文章

 

随机推荐