zoukankan      html  css  js  c++  java
  • 20155319 课堂实践二

    缓冲区溢出漏洞实验

    • 输入命令安装一些用于编译32位C程序的东西
    sudo apt-get update
    sudo apt-get install lib32z1 libc6-dev-i386
    sudo apt-get install lib32readline-gplv2-dev
    
    • 输入命令“linux32”进入32位linux环境,输入"/bin/bash"

    • 实验步骤

    sudo su
    cd /bin
    rm sh
    ln -s zsh sh
    exit
    
    • shellcode

    一般情况下,缓冲区溢出会造成程序崩溃,在程序中,溢出的数据覆盖了返回地址。而如果覆盖返回地址的数据是另一个地址,那么程序就会跳转到该地址,如果该地址存放的是一段精心设计的代码用于实现其他功能,这段代码就是shellcode。
    代码

    #include <stdio.h>
    int main( ) {
    char *name[2];
    name[0] = ‘‘/bin/sh’’;
    name[1] = NULL;
    execve(name[0], name, NULL);
    }
    

    然后一步步按照实验楼的提示去完成实验:

    2.96

    题目:遵循位级浮点编码规则,实现具有如下原型的函数:

    /*
    
     *Compute (int)f.
    
     *If conversion cause overflow or f is NaN, return 0*800000000
    
     */
     int float_f2i(float_bits f);
    
    • 对于浮点数f,这个函数计算(int)f。如果f是NaN,你的函数应该向零舍入。如果f不能用整数表示(例如,超出这个表示范围,或者它是一个NaN),那么函数应该返回0*800000000.

    • 测试你的函数,对参数f可以取的所有2^32个值求值,将结果与你的=使用机器的浮点运算得到的结果相比较。

    截图如下:

    2.97

    遵循位级浮点编码规则,实现具有如下原型的函数:

     /*Compute (float) i*/
    
    float_bits float_i2f(int i);
    

    对于函数i,这个函数计算(float)i的位级表示。

    测试你的函数,对参数f可以取的所有2^32个值求值,将结果与你的=使用机器的浮点运算得到的结果相比较。
    截图如下:

  • 相关阅读:
    ThinkPHP5.0被攻击,发现漏洞
    ThinkPHP5.0引用PHPExcel插件,在页面中导出数据库数据
    ThinkPHP5.0引入插件
    引入UEditor插件
    Form
    点击链接只跳转到首页/本地正常,上传后,除首页外,其余页面404
    Thinkphp5中嵌套循环
    ARouter转场动画无效,试试下面这种写法
    windows下运行.sh文件
    List集合增删元素时,UnsupportedOperationException报错问题
  • 原文地址:https://www.cnblogs.com/rhl20155319/p/7751782.html
Copyright © 2011-2022 走看看