软件安全领域基本功

CPU 指令集

  • CISC:Complex Instruction Set Computer,复杂指令集
    • 主流架构:X86
  • RISC:Reduced Instruction Set Computer,精减指令集
    • 主流架构:ARM、RISC-V、MIPS、PA-RISC、PowerArchitecture(包括PowerPC)、DECAlpha和SPARC
  • MISC(中间指令集计算机)
[root@linux ~] eth0 = 10.0.4.12
# ls /usr/src/kernels/$(uname -r)/arch
alpha  arm64     c6x   h8300    Kconfig  metag       mn10300   powerpc  sh     um         xtensa
arc    avr32     cris  hexagon  m32r     microblaze  openrisc  s390     sparc  unicore32
arm    blackfin  frv   ia64     m68k     mips        parisc    score    tile   x86

计算机原理

  • 了解计算机,从电开始
  • 用电来表示数
  • 让机器做加法
  • 电子计算机发明的前夜
  • 从逻辑学到逻辑电路
  • 加法机
  • 触发器
  • 走马灯
  • 计算机时代的开路先锋
  • 用机器做一连串的加法
  • 全自动加法计算机
  • 现代的通用计算机
  • 集成电路时代
  • 核心与外部设备
  • 数字化

其他:

X86

目前个人计算机 X86 体系CPU 厂商一直在走 CISC的发展道路,包括 Intel、AMD、VIA(威盛)等。之所以称为 X86,是因为最早 Intel 的 CPU 型号是 8086,后来出现了 80286,80386,80486,80586 等,所以之后的 Intel 和其兼容的厂商的生产 CPU 都称为 X86 CPU。而后CPU从最初的 8 位,16 位,32 位,发展到目前主流的 64 位。为了区别非 64 位的CPU,一般将 64 位的CPU称为 X86-64 。由于最早在 1999 由 AMD 设计公开 64 位技术,称为 x86-64,后来改名为 AMD64,不同厂商称呼有所不同,所以AMD 64,x86-64,x64 都指的是 64 位的基于 X86 的CPU。

优势:大量,海量桌面、服务器软件兼容,软件生态钢钢地

劣势:CPU设计的兼容包袱太重;在指令代码向前兼容的设计刚需下,走得举步维艰。

X86

  • 预备知识
  • 实模式
    • 虚拟机的安装和使用
    • 汇编语言程序的调试
    • 在屏幕上显示文本
    • 在屏幕上显示数字
    • 循环批量传送和条件转移
    • 计算机中的负数
    • 从 1 加到 100 并显示结果
    • INTEL 8086 处理器的寻址方式
    • 硬盘和显卡的访问与控制
  • 保持模式
    • 中断和动态时钟显示
    • 32 位 x86 处理器编程架构
    • 进入保护模式
    • 指令的格式及其操作尺寸
    • 存储器的保护
    • 保持模式程序的动态加载和执行
    • 用户程序编程接口及其实现
    • 任务和任务的创建
    • 特权级和特权级保护
    • 协同式任务切换
    • 中断和异常的处理与抢占式多任务
    • 分布和动态页分配
    • 平坦模型

X86-64

  • X64 架构及其执行环境
    • 架构简介、通用寄存器的变化及使用限制
    • X86 架构的执行模式和内存管理
  • 多任务、多线程和多处理器管理
    • 进入 64 位模式,多任务管理
    • 多处理器(核)的管理和多线程

ARM

ARM 作为 RISC 的一种,在智能手机、可穿戴设备等移动处理器市场占领主要地位,针对物联网、5G、AI新兴领域的应用。

优势:RISC设计之初就是与生俱来的精简,实现低功耗更容易,同时没有什么历史包袱,成功绑定google搞起了Linux,ARM,Google,Andriod联盟

劣势:低功耗设计,从根基因就是单核强度不高。