12寄存器
12寄存器
1、寄存器:
EAX:扩展累加寄存器
EBX:扩展基址寄存器
ECX:扩展计数寄存器
EDX:扩展数据寄存器
ESI:扩展来源寄存器
EDI:扩展目标寄存器
EBP:扩展基址寄存器,主要用于栈和栈帧
ESP:扩展堆栈指针寄存器,指向当前进程的栈空间地址
EIP:扩展指令指针寄存器,指向下一条要执行的指令
这些寄存器的大小是32位(4个字节),可容纳0-FFFFFFFF(无符号数)
2、指令:
(1)cal指令:由push和jmp组成
call xxx; = push eip;jmp xxx;
call 4040000h;直接跳到函数或过程的地址
call eax;直接跳到函数或过程存放的eax
call dword ptr [eax]
call dword ptr [<&API>] ;执行一个系统API
(2)mov指令:
mov dest,src,将src内容拷贝到dest
(3)cmp指令:
cmp dest,scr 比较两者
标志位:
所有的标志位归并于一个32位的标志位寄存器,即有32个不同的标志位。
每个标志位有两个属性,置1或置0。
在逆向中,需要关心的标志位有三个,即cmp指令能修改的Z/O/C
(4)test指令:
test dest,src 和and一样,对两个操作数进行按位与运算,但不将运算结果保存到dest
test eax,eax 如果eax为0,则Z标志位,置1。
(5)条件跳转指令:
不跳转-->nop 跳转-->jmp
3、系统API:
系统API函数也称为系统提供给软件的接口,通过调用API实现内核的操作。
4、逻辑运算:
AND:与
OR:或
XOR:异或,同则0,异则1
NOT:取反