《逆向工程核心原理》笔记(2)——小端序、寄存器和栈

小端序标记法

IA-32寄存器

通用寄存器

EAX:(针对操作数和结果数据)的累加器
EBX:(DS段中的数据指针)基址寄存器
ECX:(字符串和循环操作的)计数器
EDX:(IO指针)数据寄存器

EBP:(SS段中栈内存数据指针)扩展基址指针寄存器
ESI:(字符串操作源指针)源地址寄存器
EDI:(字符串操作目标指针)目的地址寄存器
ESP:(SS段中栈指针)栈指针寄存器

段寄存器
CS:code segment 代码段寄存器

SS:stack segment 栈段寄存器

DS:data segment 数据段寄存器
ES:extra (data) segment 附加(数据)段寄存器
FS:data segment 数据段寄存器
GS:data segment 数据段寄存器

#####

程序状态与控制寄存器

IA-32是4个字节32位

指令指针寄存器

CPU执行的指令地址,4个字节32位,只能间接修改。

作用:

  1. 暂时保存函数内的局部变量
  2. 调用函数时传递参数
  3. 保存函数的返回后的地址。

像栈压入数据时,栈顶指针减小,向低地址移动;弹出数据时,栈顶指针增加,向高地址移动。