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:取反

 

posted @ 2019-01-16 16:40  beiweisanshidu  阅读(430)  评论(0编辑  收藏  举报