zoukankan      html  css  js  c++  java
  • 20145222《信息安全系统设计基础》第五周学习总结

    20145222 《信息安全系统设计基础》第五周学习总结

    教材学习内容总结

    X86 寻址方式经历三代:

        -  1、DOS时代的平坦模式,不区分用户空间和内核空间,很不安全。  
        -  2、8086的分段模式。  
        -  3、IA32的带保护模式的平坦模式。
    

    程序编码

        -  ISA的定义:ISA是机器级程序的格式和行为,定义了处理器状态、指令的格式,以及每条指令对状态的影响  
        -  用gcc -S xxx.c -o xxx.s获得汇编代码,也可以用objdump -d xxx反汇编  
        -  64位机器上想要得到32代码:gcc -m32 -S xxx.c     
        -  MAC OS中没有objdump, 有个基本等价的命令otool  
        -  二进制文件可以用od 命令查看,也可以用gdb的x命令查看。  
           有些输出内容过多,我们可以使用 more或less命令结合管道查看,也可以使用输出重定向来查看od code.o | more和od code.o > code.txt
        -  gcc -S 产生的汇编中可以把 以”.“开始的语句都删除了再阅读  
        -  Linux和Windows的汇编格式的区别:ATT格式和Intel格式。  
    

    数据格式

    访问信息

        -  esi edi可以用来操纵数组,esp ebp用来操纵栈帧。   
        -  对于寄存器,特别是通用寄存器中的eax,ebx,ecx,edx,32位的eax,16位的ax,8位的ah,al都是独立的。例:  
                       假定当前是32位x86机器,eax寄存器的值为0x8226,执行完addw $0x8266, %ax指令后eax的值是多少?   
                       解析:0x8226+0x8226=0x1044c, ax是16位寄存器,出现溢出,最高位的1会丢掉,剩下0x44c,不要以为eax是32位的不会发生溢出。  
        -  操作数的三种类型:立即数、寄存器、存储器。  
        -  有效地址的计算方式```Imm(Eb,Ei,s) = Imm + R[Eb] + R[Ei]*s```   
        -   MOV相当于C语言的赋值”=“,注意ATT格式中的方向, 另外注意不能从内存地址直接MOV到另一个内存地址,要用寄存器中转一下。能区分MOV,MOVS,MOVZ,掌握push,pop  
        -  栈帧与push pop; 注意栈顶元素的地址是所有栈中元素地址中最低的;  
        -  指针就是地址;
        -  局部变量保存在寄存器中。  
    

    算术和逻辑操作

        -  移位操作移位量可以是立即数或%cl中的数。  
        -  控制中最核心的是跳转语句:有条件跳转p128(实现if,switch,while,for),无条件跳转jmp(实现goto)。 
    

    控制

        -  有条件跳转的条件看状态寄存器;  
        -  leal不改变条件码寄存器。
    

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

    • CMP和SUB用在什么地方?
    • 查资料得这个例子:SUB D,S 是D-S结果送回D中,即目的操作数中
      而CMP D,S也是相减但结果不送回目的操作数中,一般用作比较数大小时用。

    本周代码托管截图

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 4000行 30篇 400小时
    第一周 0/0 2/3 10/20 掌握了几个命令
    第二周 0/0 1/4 8/28 熟练了vim编辑器的操作
    第三周 40/40 1/5 12/40 开始敲代码了
    第四周 36/76 2/7 15/55 慢慢熟悉了汇编语言

    参考资料

  • 相关阅读:
    [Angular 2] Property Binding
    [Angular 2] Interpolation: check object exists
    [Angular 2] @ViewChild to access Child component's method
    [SVG] Simple introduce for SVG
    资源-软件:资源2
    SQLServer-SQLServer2017:SQLServer2017
    软件-MQ-RabbitMQ:RabbitMQ
    MQ:MQ(IBM MQ)
    app-safeguard-record:record
    引擎-JavaScript:V8(Javascript引擎)
  • 原文地址:https://www.cnblogs.com/huangyaqi/p/5967483.html
Copyright © 2011-2022 走看看