zoukankan      html  css  js  c++  java
  • 实验二

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

    测试2

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

    测试3

    • 编写一个程序 “week0603学号.c",运行下面代码:
      1.short int v = -学号后四位
      2.unsigned short uv = (unsigned short) v
      3.printf("v = %d, uv = %u ", v, uv);
    • 在第三行设置断点用gdb调试,用p /x v; p /x uv 查看变量的值,提交调试结果截图,要全屏,要包含自己的学号信息
    • 分析p /x v; p /x uv 与程序运行结果的不同和联系

    • 一开始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 函数的汇编代码截图,图中用矩形标出函数栈帧的形成和销毁的代码

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

    操作过程如下截图

    手稿如图:

    课下作业

    作业1

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

    内容

    题2.96

    题2.97

    缓冲区溢出漏洞实验

  • 相关阅读:
    eclipse svn插件
    eclipse 图片预览插件
    eclipse properties文件插件
    eclipse Failed to load the JNIshared library
    Spark MLlib之线性回归源代码分析
    ul,li不能左右居中的问题
    【日常学习】【搜索/递归】codevs2802 二的幂次方题解
    UVa 112
    查询一个月最后一天的总用户数,数据库中没有保存最好一天的数据,就查询本月数据库已存有的最后一天的数据
    uva:10763
  • 原文地址:https://www.cnblogs.com/protectmonarch/p/7750832.html
Copyright © 2011-2022 走看看