• 2017-2018-1 20155208 《信息安全系统设计基础》第五周学习总结


    2017-2018-1 20155208 《信息安全系统设计基础》第五周学习总结

    学习目标

    • 理解逆向的概念
    • 掌握X86汇编基础,能够阅读(反)汇编代码
    • 了解ISA(指令集体系结构)
    • 理解函数调用栈帧的概念,并能用GDB进行调试

    教材内容总结

    • 执行汇编命令:gcc –s xxx.c –o xxx.s反汇编命令:objdump –d xxx 64位处理器得到32代码的命令:gcc –m32 –s xxx.c

    注意:64位机器上想要得到32代码:gcc -m32 -S xxx.c MAC OS中没有objdump, 有个基本等价的命令otool

    • X86 寻址方式经历三代:

      1、DOS时代的平坦模式,不区分用户空间和内核空间,很不安全

      2、 8086的分段模式

      3、IA32的带保护模式的平坦模式

    • ISA(指令集体系结构):机器级程序的格式和行为,定义了处理器状态、指令的格式,以及每条指令对状态的影响

    • 数据传送示例

      局部变量通常保存在寄存器中

      寄存器访问比存储器访问要快的多。

      算术和逻辑操作四组操作

      加载有效地址:将有效地址写入目的操作数,目的操作数必须是寄存器。

    • 一元操作:只有一个操作数,可以是寄存器也可是存储器位置。

    • 二元操作:源操作数是第一个,可以是立即数、寄存器、存储器 ;目的操作数是第二个,可以是寄存器、存储器;两个不能同时为存储器。

    • 二进制文件可以用od 命令查看,也可以用gdb的x命令查看。 有些输出内容过多,我们可以使用 more或less命令结合管道查看,也可以使用输出重定向来查看,如:

    `od code.o | more`
    
    `od code.o > code.txt`
    • 操作数的三种类型:立即数、寄存器、存储器

    • 栈:“后进先出”,栈顶元素的地址是所有栈中元素地址中最低的。

    • 有效地址的计算方式 Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s

    • MOV相当于C语言的赋值 “=” (注意不能从内存地址直接MOV到另一个内存地址,要用寄存器中转一下)

    • 移位操作中移位量可以是立即数或%cl中的数

    • leal不改变条件码寄存器

    • SET指令根据t=a-b的结果设置条件码

    • call/ret; 函数返回值存在%eax中

    • 寄存器使用惯例

    程序寄存器组是唯一能被所有过程共享的资源。

    惯例是为了防止一个过程P调用另一个过程Q时寄存器中的值被覆盖

    使用惯例:%eax,%edx,%ecx 调用者保存寄存器 %ebx,%esi,%edi 被调用者保存寄存器 %ebp,%esp 保持寄存器

    保存某值的两种方式

    由调用者保存。在调用之前就压进栈。 由被调用者保存,在刚被调用的时候就压进栈,并在返回之前恢复。

    gdb调试

    实验练习中的问题和解决过程

    使用gcc –S –o main.s main.c -m32命令编译成汇编代码,如下代码中的数字和函数名请自行修改以防与他人雷同

    代码托管

    代码上传截图:

    码云链接

    学习进度条

     代码行数(新增/积累)博客量(新增/积累学习时间(新增/累积)
    目标 5000行 30篇 400小时
    第一周 5/5 1/1 8/8
    第二周 120/120 1/1 12/12
    第三周 100/100 1/1 15/15
    第四周 80/80 1/1 9/9
    第五周 50/50 1/1 6/6

    参考资料

    《深入理解计算机系统V3》学习指导

    详细介绍Linux指令od

  • 相关阅读:
    DNS 主从同步配置
    Linux LVM卷组管理
    python ssh 执行shell命令
    python 批量远程机器,执行Linux命令
    连接管理 与 Netty 心跳机制
    java 注解 知识整理
    SOFARPC —— SPI 解析
    SOFARPC —— Generic Service (泛化调用) 解析
    线程池
    关于ava容器、队列,知识点总结
  • 原文地址:https://www.cnblogs.com/xuzihan/p/7710863.html
Copyright © 2020-2023  润新知