閱讀下列說明,回答問題 1 至問題 4 ,將解答寫在答題紙的對 應(yīng)欄內(nèi)。
【說明】
基于 Windows32 位系統(tǒng)分析下列代碼,回答相關(guān)問題 。
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】(3 分)
main 函數(shù)內(nèi)的三個本地變量所在的內(nèi)存區(qū)域稱為什么?它的兩個最基本操作是什么?
【問題 2】(3分)
畫出buf,check,buf2 三個變量在內(nèi)存的布局圖。 
【問題 3】(2分)
應(yīng)該給程序提供什么樣的命令行參數(shù)值(通過argv變量傳遞)才能使程序執(zhí)行流程進入判斷語句 If(check=65)....然后調(diào)用challenge( )函數(shù)。
【問題4】(4分)
上述代碼所存在的漏洞名字是什么,針對本例代碼,請簡要說明如何修正上述代碼以修補次漏洞。

【問題 3】 (2 分)
SYN 的含義是什么?


