您的位置:首页 > 其它

20155325 2017-2018 1 《信息安全系统设计基础》第六周学习总结(合并课上测试、课下作业、第八章)

2017-10-29 22:38 931 查看


实践要求

第六周课上测试-2-ch02

调用附图代码,编写一个程序 “week0602学号.c",用show_int(), show_float()打印一下你的4位学号,参考教材P33打印出匹配的位序列。

提交运行结果截图,要全屏,要包含自己的学号信息

3.*************课下把代码推送到代码托管平台**************

参考教材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

2.96

2.97

第六周课上测试-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/91/119/19熟练下载安装技能,锻炼解决问题能力
第2周380/3892/326/451、7章
第3,4周1270/16593/6422、10章
第5周20/16792/8实验一&3章
第六周223/190219课堂测试、课下作业、第八章
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐