20155325 2017-2018 1 《信息安全系统设计基础》第六周学习总结(合并课上测试、课下作业、第八章)
实践要求
第六周课上测试-2-ch02
-
调用附图代码,编写一个程序 “week0602学号.c",用show_int(), show_float()打印一下你的4位学号,参考教材P33打印出匹配的位序列。
-
提交运行结果截图,要全屏,要包含自己的学号信息
3.*************课下把代码推送到代码托管平台**************
4. 参考教材p82,给出出匹配的位序列的推导过程
第六周课上测试-3-ch02
-
编写一个程序 “week0603学号.c",运行下面代码:
1 short int v = -学号后四位
2 unsigned short uv = (unsigned short) v
3 printf("v = %d, uv = %u\n ", v, uv); -
在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图,要全屏,要包含自己的学号信息
-
分析p /x v; p /x uv 与程序运行结果的不同和联系
第六周课上测试-5-ch03
-
通过输入gcc -S -o main.s main.c 将下面c程序”week0603学号.c“编译成汇编代码
int g(int x){
return x+3;
}
int f(int x){
int i = 学号后两位;
return g(x)+i;
}
int main(void){
return f(8)+1;
} -
参考http://www.cnblogs.com/lxm20145215----/p/5982554.html,使用gdb跟踪汇编代码,在纸上画出f中每一条语句引起的eip(rip),ebp(rbp),esp(rsb),eax(rax)的值和栈的变化情况。提交照片,要有学号信息。
ch02 课下作业
- 补充完成课上测试(不能只有截图,要有分析,问题解决过程,新学到的知识点)
- 完成教材 p97 2.96 2.97,要有完备的测试
- 发一篇相关内容的博客, 提交博客链接
ch03 课下作业
- 补充完成课上测试(不能只有截图,要有分析,问题解决过程,新学到的知识点)
- 在自己的电脑中完成https://www.shiyanlou.com/courses/231缓冲区溢出漏洞实验 实验
- 发一篇相关内容的博客, 提交博客链接
实验截图
第六周课上测试-2-ch02
现将整数5325写成二进制形式[1 0100 1100 1101],将二进制小数点左移12位,,去掉开头的1,后面补11(11 = 23-12,单精度小数字段共23位)个0,12加单精度的偏置量127等于139,将其二进制表示左侧加符号位0[1000 1011],再接到刚才去1补0后的值前,得到二进制浮点表示,[0100 0101 1010 0110 0110 1000 0000 0000] 5325.0的二进制表示为就可以通过对照发现匹配的位序列
第六周课上测试-3-ch02
-
问题:
-
解决:其实是复制下来后的符号有的是中文的,换掉就好
第六周课上测试-5-ch03
- 分析题目:“eip(rip),ebp(rbp),esp(rsb),eax(rax)”讲的是什么意思呢?
ebp:栈底
esp:栈顶
eip:寄存器,用来存储CPU要读取指令的地址,CPU通过EIP寄存器读取即将要执行的指令。
链接: 汇编语言里 eax, ebx, ecx, edx, esi, edi, ebp, esp,eip; 栈帧%ebp,%esp详解
第六周课上测试-3-ch02
第六周课上测试-5-ch03
-
问题:直接输入“linux32”不能进入
-
解决:直接输完就好,就在图片的最后一行命令
-
问题:没有sh
-
过程:不知所措,无奈的我重新开了实验,调换了“rm sh”和下一条指令的顺序,然并卵。
-
问题:攻击失败
- 过程:之前没有
第八章 异常控制流
-
并发流:并发流一个逻辑流的执行在时间上与另一个流重叠。
并发:多个流并发执行的一般现象称为并发。
多任务:多个进程并发叫做多任务。
并行:并发流在不同的cpu或计算机上。
-
理解数组指针、指针数组、函数指针、指针函数的区别
函数指针:重点在指针,表示它是一个指针,它指向的是一个函数。eg: int (*fun)();
指针函数:重点在函数,表示它是一个函数,它的返回值是指针。 eg: int* fun();
数组指针:重点在指针,表示它是一个指针,它指向的是一个数组。int (*fun)[8];
指针数组:重点在数组,表示它是一个数组,它包含的元素是指针 itn* fun[8];
- man -k key1 | grep key2| grep 2 : 根据关键字检索系统调用
grep -nr XXX /usr/include :查找宏定义,类型定义
这个在上次的博客中已经写过了
博客
代码托管
上周考试错题总结
- 下面可以用二进制精确表示的数有
A .
1/2
B .
1/3
C .
1/4
D .
3/8
E .
5/7
正确答案: A C D
- 对于int x; float f; double d;下面正确的是()
A .
x == (int)(double)x
B .
x==(int)(float)x
C .
f == -(-f)
D .
1.0/2 == 1/2.0
E .
(f+d)-f == d
正确答案: A C D
- 我们用一个十六进制的数表示长度w=4的位模式,把数字解释为补码,关于其加法逆元的论述正确的是()
A .
0x8的加法逆元是-8
B .
0x8的加法逆元是0x8
C .
0x8的加法逆元是8
D .
0xD的加法逆元是3
E .
0xD的加法逆元是0x3
正确答案: A B D E
- 大多数计算机使用同样的机器指令来执行无符号和有符号加法。
A .
正确
B .
错误
C .
不确定
正确答案: A 你的答案: B 查看知识点 | 查看解析
8
( 多选题 | 1
- 我们用一个十六进制的数表示长度w=4的位模式,对于数字的无符号加法逆元的位的表示正确的是()
A .
0x8的无符号加法逆元是0x8
B .
0xD的无符号加法逆元是0xD
C .
0xF的无符号加法逆元是0x1
D .
0xF的无符号加法逆元是1
正确答案: A C D
-
0<=x,y<2^w, 则
A .
x+y的最大值是2^w
B .
x+y的最大值是2^w-1
C .
x+y的最大值是2^w-2
D .
x+y的最大值是2^(w+1)
E .
x+y的最大值是2^(w+1)-1
F .
x+y的最大值是2^(w+1)-2
正确答案: F -
short sx=-12345;
int x = sx;
unsigned ux = sx;
A .
sx,x,ux的十六进制表示中的最后两个字节是0xcfc7
B .
ux == 0xffffcfc7
C .
ux == 0x0000cfc7
D .
x == 0xffffcfc7
E .
x == 0x0000cfc7
正确答案: A C D
-
short int v=-12345;
unsigned short uv=(unsigned short) v;
那么
A .
v=-12345, uv=53191
B .
v=uv=0xcfc7
C .
v,uv的底层的位模式不一样
D .
v,uv的值在内存中是不一样的
正确答案: A B -
int x; x的二进制为[10010101], x>>4的值为()
A .
[10010101]
B .
[00001001]
C .
[11111001]
D .
[01010000]
正确答案: C
- 下面和代码可移植性相关的C语言属性有()
A .
define
B .
typedef
C .
sizeof()
D .
union
正确答案: A B C
- x=0x12345678,存放在0x200-0x203地址中,小端机器中0x201中的内容是()
A .
0x12
B .
0x34
C .
0x56
D .
0x78
正确答案: C
- 整数int x在内存中的地址是0x200,0x201,0x202,0x203,那么&x的值是()
A .
不同机器上(大端,小端)不一样
B .
0x200
C .
0x203
D .
0x200-0x203
正确答案: B
- 与unsigned long等价的声明是()
A .
unsigned
B .
long unsigned
C .
long unsigned int
D .
unsigned long int
正确答案: B C D
- 一个数x是2的n次方,n=i+4*j,i=2,j=8时,用16进制表示x,最高位是()
A .
2
B .
4
C .
8
D .
0
正确答案: B
- 实现十进制数向各种进制(2,8,16)的转换,可以使用数据结构中的()来实现。
A .
堆
B .
栈
C .
队列
D .
树
正确答案: B
- 根据c89国际标准编译程序prog.c,下面正确的是()
A .
gcc prog.c
B .
gcc -ansi prog.c
C .
gcc -std=c89 prog.c
D .
gcc -std=gnull prog.c
正确答案: B C
结对
- 本周结对学习情况
- 20155328
- 结对照片
- 结对学习内容
- 课堂测试、课下作业、第八章
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 16篇 | 400小时 | |
第一周 | 9/9 | 1/1 | 19/19 | 熟练下载安装技能,锻炼解决问题能力 |
第2周 | 380/389 | 2/3 | 26/45 | 1、7章 |
第3,4周 | 1270/1659 | 3/6 | 42 | 2、10章 |
第5周 | 20/1679 | 2/8 | 实验一&3章 | |
第六周 | 223/1902 | 1 | 9 | 课堂测试、课下作业、第八章 |