• 2018-2019-1 201653121 《信息安全系统设计基础》第三周学习总结


    教材学习内容总结

    在 Linux 系统中,带 '-d' 命令行标志的程序 OBJDUMP(表示“object dump”)可以充当这个角色。

    书上的例子

    $objdump -d mstore.o
    (反)汇编代码的数据格式见书 P119,重点记忆不同的大小。
    寄存器的用途见书 P120。
    寻址方式见书P121。
    mov(b字节,w字,l双子,q四字)。
    pushq,popq操作的均为四字。
    SAL和SHL的效果是一样的。
    联合,书P186
    理解函数调用栈帧的概念,并能用GDB进行调试

    教材学习中的问题和解决过程

    6.下面的跳转指令与ZF有关的是(ABD)

    A .
    jmp

    B .
    je

    C .
    js

    D .
    ja

    E .
    jb

    F .
    jbe

    解析:课本p139图3-15

    10.假设%rax中的值为x, %rcx中的值为y,关于leaq指令,下面正确的(AC)

    A .
    leaq 6(%rax), %rdx; %rdx中值为6+x

    B .
    leaq 6(%rax), %rdx; %rdx中值为6x

    C .
    leaq 7(%rax, %rax,8), %rdx; %rdx中值为9x+7

    D .
    leaq 7(%rax, %rax,8), %rdx; %rdx中值为63x

    E .
    leaq 7(%rax, %rax,8), %rdx; %rdx中值为15x

    实验截图:




    实验原理

    缓冲区溢出是指程序试图向缓冲区写入超出预分配固定长度数据的情况。这一漏洞可以被恶意用户利用来改变程序的流控制,甚至执行代码的任意片段。这一漏洞的出现是由于数据缓冲器和返回地址的暂时关闭,溢出会引起返回地址被重写。
    一般情况下,缓冲区溢出会造成程序崩溃,在程序中,溢出的数据覆盖了返回地址。而如果覆盖返回地址的数据是另一个地址,那么程序就会跳转到该地址,如果该地址存放的是一段精心设计的代码用于实现其他功能,这段代码就是 shellcode。

    实验目的

    利用专门写出来的系统堆栈漏洞程序stack.c文件作为引发系统堆栈漏洞的程序,运行此程序会导致Linux系统的堆栈出现溢出。再运行设计好的攻击程序exploit.c文件,输入获取Linux当前用户名的指令,就可以窃取到当前用户的密码。

    实验感想

    如果要用本次实验的方法来进行攻击,其实还是比较麻烦的,而且这种攻击方式要求能够对被攻击的Linux系统进行操作,因而这种攻击方式在实际中可能并不是那么方便。

  • 相关阅读:
    C 语言编程经典 100 例
    visual studio.net已检测到指定的web服务器运行的不是asp.net1.1版。无法运行asp.net web应用程序
    如何编译及运行java
    VBScript 函数集
    SQL SERVER定时作业的设置方法
    显示桌面按钮不小心被删,有什么办法找回?
    随机抽取n个记录的SQL
    打开项目时提示如下错误:Visual Studio .NET 无法创建应用程序 。问题很可能是因为本地 Web 服务器上没有安装所需的组件
    简单的数据库连接
    ASP中各种数据库连接代码
  • 原文地址:https://www.cnblogs.com/xpl20165321/p/9788514.html
Copyright © 2020-2023  润新知