C语言源程序的缓冲区溢出漏洞分析及解决方案
22 3 V ol. 22 N o . 3
2008. 9 JOU RN AL OF SH ENY A NG INS T IT UT E O F CHEM ICAL T ECHN O LO GY Sep. 200 8
: 1004 - 4639 ( 200 8) 03- 0265- 04
C
,
( , 110142)
: 着重分析 一些存在缓冲区溢出攻击漏洞的C 语言函数, 介绍具有哪些特点的C 函数容
易 到缓冲区溢出攻击, 并借此更加深入地了解缓冲区溢出攻击机制. 探讨了缓冲区溢出攻击程
序的结构. 最后提出避免缓冲区溢出攻击的方法. 该方法从 C 函数和攻击程序两方面入手, 通过避
免或正确使用有缓冲区溢出攻击漏洞的 C 语言函数; 了解恶意程序代码的结构识别恶意程序代
码, 达到避免缓冲区溢出攻击的目的.
: ; ;
: T P 39310 8 : A
: , ,
, C C+ + . ) ) )
. ;
; ,
. , [ 2]
, .
, ,
, . .
, . : , , .
, , , ,
. , .
, , , :
; EIP
[ 1]
. . ;
C C EBP , ,
. C
, [ 2]
. 1: main
, [ 3]
unct ion .
. # include< st dio1h>
# include< st ring1h >
1 C
void unct ion( char * str)
{
111 C
char bu er[ 1] ;
, . st rcpy( bu er, st r) ;
: 2007- 05- 07
: ( 197 1- ) , , , , , .
266 2008
print (d% s \ nd, bu er)