點擊進(jìn)入>>2017年上半年信息安全工程師真題下載與查分專題
2017年上半年信息安全工程師下午案例分析試題六與答案 (共 12 分)
閱讀下列說明,回答問題 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í)行流程進(jìn)入判斷語句 If(check=65)....然后調(diào)用challenge( )函數(shù)。
【問題4】(4分)
上述代碼所存在的漏洞名字是什么,針對本例代碼,請簡要說明如何修正上述代碼以修補次漏洞。
2017年上半年信息安全工程師下午案例分析試題六參考答案:
【問題1】
堆棧,push(壓棧)和pop(彈棧)操作
【問題2】
變量的先后關(guān)系、每個變量所占空間、增長方向(數(shù)組)
【問題3】
覆蓋超過buf數(shù)組個字節(jié),也就是輸入?yún)?shù)形如:********A。注意大小端。
前面8個任意的非零字符都可以(1分),后跟一個大寫的A字符,因為A字符的ASCⅡ碼值等于65。
【問題4】
緩存溢出或者棧溢出。
對輸入?yún)?shù)的長度進(jìn)行檢查。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評論 查看完整評論 | |