学习笔记

1、常用寄存器

缩写 全称
EAX 扩展累加寄存器
EBX 扩展基址寄存器
ECX 扩展计数寄存器
EDX 扩展数据寄存器
ESI 扩展来源寄存器
EDI 扩展目标寄存器
EBP 扩展基址指针寄存器
ESP 扩展堆栈指针寄存器
EIP 扩展指令指针寄存器

其中EBP、ESP、EIP不能随意使用:

  • EBP:主要用于栈和栈帧
  • ESP:指向当前进程的栈空间地址
  • EIP:总是指向下一条要被执行的指令

2、栈

  • 是操作受限的线性表
  • 先进后出FILO
  • 地址反向增长(栈底为大地址、栈顶是小地址)

一个字符串正常来说,是从低往高长

3、Call

call xxx:push eipjmp xxx

call指令的操作数是最终要跳转到的地址

call指令的形式:

  • call xxx:立即数寻址,目标地址是xxx,直接跳转到函数或过程的地址
  • call eax:寄存器寻址,跳转到寄存器所存储的地址
  • call dword ptr [eax]:寄存器间接寻址
  • call dword ptr [eax+??]:从基址加偏移后的地址中取出真实地址所在的位置,跳转到这个位置存储的数据的位置执行
  • call dword ptr [<&API>]:执行一个系统API

byte 字节 1B

word 字 2B

dword 双字 4B