• 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个值求值,将结果与你的=使用机器的浮点运算得到的结果相比较。
    截图如下:

  • 相关阅读:
    筛选IPV4地址
    linux查看磁盘空间大小df du fdisk stat命令
    编写shell脚本sum求1100累加和
    postman通过Cookies登录博客园
    Linux中mount挂载命令简洁使用方法
    linux如何查询文件及文件夹大小
    postman接口测试中添加不同的断言
    设计模式之状态模式
    Docker安装SQL Server
    架构漫谈读书笔记
  • 原文地址:https://www.cnblogs.com/rhl20155319/p/7751782.html
Copyright © 2020-2023  润新知