主观

【说明】 

基于 Windows32 位系统分析下列代码,回答相关问题 。 

void Challenge(char *str) 

char temp[9]={0}; 

strncpy(temp,str,8); 

printf("temp=%s\n",temp); 

if(strcmp(temp"Please!@")==0){ 

printf("KEY: ****"); 

int main(int argc,char *argv[ ]) 

Char buf2[16] 

Int check=1; 

Char buf[8] 

Strcpy (buf2, "give me key! !"); 

strcpy(buf,argv[1]); 

if(check==65) { 

Challenge(buf); 

else { 

printf("Check is not 65 (%d) \n Program terminated!!\n",check); 

Return 0; 

【问题 1】

main 函数内的三个本地变量所在的内存区域称为什么?它的两个最基本操作是什么? 

【问题 2】

画出buf,check,buf2 三个变量在内存的布局图。 

【问题 3】 

应该给程序提供什么样的命令行参数值(通过argv变量传递)才能使程序执行流程进入判断语句 If(check=65)....然后调用challenge( )函数。 

【问题4】 

上述代码所存在的漏洞名字是什么,针对本例代码,请简要说明如何修正上述代码以修补次漏洞。

参考答案
您可能感兴趣的试题
¥

订单号:

遇到问题请联系在线客服

订单号:

遇到问题请联系在线客服