实验二

做测试2的时候,因为时间花费太多,,发现每个测试给的时间是阶梯式的时候已经来不及了,以下为测试2至5的内容。

测试2

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

1057540-20171029171129133-906386870.png

测试3

  • 编写一个程序 “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 与程序运行结果的不同和联系

1057540-20171029165349414-179928366.png

  • 一开始cgdb的时候无法生成正常的界面,测试后发现是因为gcc -g这个命令跟gdb a.out命令中间有进行别的命令,例如错误的命令,导致无法正常运行,只要接连输入这两命令就可正常运行了

测试4

  • 通过输入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;
}
  • 删除汇编代码中 . 开关的代码,提交f 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码

1057540-20171029170707258-882269969.png

测试5

  • 通过输入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)的值和栈的变化情况。提交照片,要有学号信息。

操作过程如下截图
1057540-20171029190555398-2128115121.png

1057540-20171029190605945-1605615448.png

1057540-20171029190616117-1272815461.png

1057540-20171029190625695-302887333.png

1057540-20171029190646258-265582218.png

1057540-20171029190654680-361179642.png

1057540-20171029190704055-978757861.png

1057540-20171029190716211-498887887.png

1057540-20171029190724633-1227457852.png

1057540-20171029190735461-1612102923.png

手稿如图:
1057540-20171029192816461-1883533464.jpg

课下作业

作业1

  1. 补充完成课上测试(不能只有截图,要有分析,问题解决过程,新学到的知识点)
  2. 在自己的电脑中完成https://www.shiyanlou.com/courses/231缓冲区溢出漏洞实验 实验
  3. 发一篇相关内容的博客, 提交博客链接
内容
题2.96

1057540-20171029201529320-513112303.png

1057540-20171029201542898-1995320037.png

题2.97

1057540-20171029204855180-774713876.png

缓冲区溢出漏洞实验

1057540-20171029224141836-1700564633.png

1057540-20171029224151476-1426735720.png

1057540-20171029224255773-947213855.png

转载于:https://www.cnblogs.com/protectmonarch/p/7750832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值