试题一:阅读下列说明,回答问题 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
信管网考友试题答案分享:
信管网北京市电信考友:
1、缓存区,出栈和入栈
2、buf 8,2格
check 65
buf2 16
3、argv=65
4、缓存溢出
信管网jackdong:
1、堆栈,push(压栈)或者pop(弹栈)操作。
2、buf8字节 check4字节 buf2 16字节。
3、覆盖超过buf数组个字节,也就是输入参数,例如:********a,注意大小端。前面8个任意的非零字符都可以,后跟一个大写a字符,因为a字符的ascⅱ码值等于65。
4、缓存溢出或者栈溢出 对输入参数的长度进行检查。
信管网jackdong:
1、堆栈,push(压栈)或者pop(弹栈)操作。
2、buf8字节 check4字节 buf2 16字节。
3、覆盖超过buf数组个字节,也就是输入参数,例如:********a,注意大小端。前面8个任意的非零字符都可以,后跟一个大写a字符,因为a字符的ascⅱ码值等于65。
4、缓存溢出或者栈溢出 对输入参数的长度进行检查。
信管网chenyuntao:
问题1:堆栈。入栈和出栈。<br>问题2:从低地址到高地址,buf占两行,check占1行,buf2占4行。<br>问题3:输入的字符串长度大于8个,且第9个字符为大写字母a。<br>问题4:缓冲区溢出漏洞。加入检查输入字符串长度的代码,使其不超过8个,可以修补此漏洞。
信管网cnitpm28151895373:
1.堆栈,push和pop<br>2. buff2<br> check<br> buf<br>3前8个字符为任意值,第九个字符为阿斯克码为65值的字符即为a。<br>4.缓冲区溢出<br>使用授权的工具开发正确的程序。禁用不安全的函数,使用输入验证。静态分析验证指针的完整性
试题二:阅读下列说明,回答问题 1 至问题 5,将解答写在答题纸的对 应栏内。
【说明】
DES 是一种分组密码,己知 DES 加密算法的某个 S 盒如表 4-1 所示。
【问题1】 (4分)
请补全该 S 盒,填补其中的空(1) - (4),将解答写在答题纸的对应栏内。
【问题 2】 (2分)
如果该 S 盒的输入为 110011,请计算其二进制输出。
【问题3】(6分)
DES加密的初始置换表如下:
置换时,从左上角的第一个元素开始,表示输入的明文的第58位置换成输出的第1位,输入明文的第50位置换成输出的第2位,从左至右,从上往下,依次类推。
DES加密时,对输入的64位明文首先进行初始置换操作。
若置换输入的明文M=0123456789ABCDEF(16进制),请计算其输出(16进制表示)。
【问题4】(2分)
如果有简化的DES版本,其明文输入为8比特,初始置换表IP如下:
IP:2 6 3 1 4 8 5 7
请给出其逆初始置换表。
【问题5】(2分)
DES加密算法存在一些弱点和不足,主要有密钥太短和存在弱密钥。请问,弱密钥的定义是什么?
查看答案
参考答案:
参考解析:www.cnitpm.com/st/3276125797.html
信管网考友试题答案分享:
信管网cnitpm177319310:
问题1 (1)10 (2)6 (3)1 (4)11
问题2 0100
问题5 弱密钥,密钥太短,并且可能存在密钥相同,
信管网cnitpm50331607771:
一、10 6 1 11
二、0100
三、
四
4 1 3 5 7 2 8 6
五、弱密钥分成两个部分 全1或者全0,这样的每次加密的密钥都相同
对初始秘钥k ,若通过密钥生成算法生成的圈(子)密钥都相同,则成k为弱密钥
半弱密钥,有些种子密钥只能生成两个不同的子密钥,这种种子密钥称为半弱密钥,半弱密钥会将明文加密成相同的密文,
信管网cnitpm50331607771:
一、10 6 1 11
二、0100
三、
四
4 1 3 5 7 2 8 6
五、弱密钥分成两个部分 全1或者全0,这样的密钥加密的结果都相同
信管网jackdong:
1、10 6 1 11
2、0100
3、cc00ccfff0aaf0aa
4、41357286
5、
信管网cnitpm28151895373:
1.10,6,1,11<br>2.0100<br>3.m=0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111<br> ip=1100 1100 0000 0000 1100 1100 1111 1111 1111 <br>0000 1010 1010 1111 0000 1010 1010<br> =cc00ccfff0aaf0aa<br>4.-ip=41357286<br>5.存在一个密钥k,由这个密钥k所产生的子密钥相同,就称这个密钥是弱密钥。
温馨提示:因考试政策、内容不断变化与调整,信管网网站提供的以上信息仅供参考,如有异议,请以权威部门公布的内容为准!
信管网致力于为广大信管从业人员、爱好者、大学生提供专业、高质量的课程和服务,解决其考试证书、技能提升和就业的需求。
信管网软考课程由信管网依托10年专业软考教研倾力打造,官方教材参编作者和资深讲师坐镇,通过深研历年考试出题规律与考试大纲,深挖核心知识与高频考点,为学员考试保驾护航。面授、直播&录播,多种班型灵活学习,满足不同学员考证需求,降低课程学习难度,使学习效果事半功倍。
发表评论 查看完整评论 | |