专业信息安全工程师网站|培训机构|服务商(2021信息安全工程师学习QQ群:327677606,客服QQ:800184589)

软题库 培训课程
当前位置:信管网 >> 信息安全工程师 >> 每日一练 >> 文章内容
信息安全工程师案例分析每日一练试题(2021/3/14)
来源:信管网 2021年03月15日 【所有评论 分享到微信

信息安全工程师案例分析当天每日一练试题地址:www.cnitpm.com/exam/ExamDayAL.aspx?t1=6

往期信息安全工程师每日一练试题汇总:www.cnitpm.com/class27-6-1.aspx

信息安全工程师案例分析每日一练试题(2021/3/14)在线测试:www.cnitpm.com/exam/ExamDayAL.aspx?t1=6&day=2021/3/14

点击查看:更多信息安全工程师习题与指导

信息安全工程师案例分析每日一练试题内容(2021/3/14)

阅读下列说明,回答问题 1 至问题 4 ,将解答写在答题纸的对 应栏内。
【说明】
基于 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】(3 分)
main 函数内的三个本地变量所在的内存区域称为什么?它的两个最基本操作是什么?
【问题 2】(3分)
画出buf,check,buf2 三个变量在内存的布局图。

【问题 3】(2分)
应该给程序提供什么样的命令行参数值(通过argv变量传递)才能使程序执行流程进入判断语句 If(check=65)....然后调用challenge( )函数。
【问题4】(4分)
上述代码所存在的漏洞名字是什么,针对本例代码,请简要说明如何修正上述代码以修补次漏洞。
信管网试题答案与解析:www.cnitpm.com/st/327636549.html

信管网考友试题答案分享:

信管网cnitpm439753710:
【1】堆栈,压栈pop,出栈push 【2】buf 4 ;check 16 ; buf2 8 【3】 【4】缓冲区溢出

信管网cnitpm439753710:
【1】堆栈,push压栈、pop弹栈 【2】变量的先后关系、每个变量所占空间、增长方向(数组) buf 8字节->check 4字节-> buf2 16字节 【3】覆盖超过buf数组个字节,也就是输入参数形如:************a。注意大小端。 前面8个任意的非零字符都可以,后跟一个大写的a字符,因为a字符的ascii码值等于65. 【4】缓存溢出或者栈溢出 对输入参数的长度进行检查

信管网cnitpm439753710:
【1】堆栈;push压栈,pop弹栈 【2】buf 8字节 check 4字节 buf2 16字节 【3】覆盖超过buf数组个字节,形如********a(a字符ascii码值为65) 【4】缓存溢出或者栈溢出 对输入的参数长度进行检查

信管网cnitpm439753710:
【1】堆栈;pop压栈,push出栈 【2】buf 8位 check 4位 buf2 16位 【3】 【4】

信管网试题答案与解析:www.cnitpm.com/st/327636549.html
扫码关注公众号

温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!

信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。

信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。

相关内容

发表评论  查看完整评论  

推荐文章