逆向入门所需基本汇编指令

什么是堆栈?

1)就是一块内存,操作系统在程序启动的时候已经分配好的,供程序执行时使用。
2)和数据结构的堆栈无关
3)查看堆栈

1、mov指令 移动数据
2、add指令 加
3、sub指令 减
4、and指令 与
5、or指令 或
6、xor指令 异或
7、not指令 取反

基础指令

1、movs指令

mov指令:移动数据 内存-内存

byte/word/dword
movs byte ptr es:[edi],byte ptr ds:[esi] 简写为:movsb
movs word ptr es:[edi],word ptr ds:[esi] 简写为:movsw
movs dword ptr es:[edi],dword ptr ds:[esi] 简写为:movsd

2、stos指令

stos指令:将ai/ax/eax的值存储到[edi]指定的内存单元

stos byte ptr es:[edi] 简写为stosb
stos word ptr es:[edi] 简写为stosw
stos dword ptr es:[edi] 简写为stosd

3、rep指令

rep指令:按计数寄存器(ECX)中指定的次数重复执行字符串指令

MOV ECX,10
REP MOVSD

REP STOSD

4、PUSH指令

功能:
<1>向堆栈中压入数据
<2>修改栈顶指针ESP寄存器

5、POP指令

功能:
<1>将栈顶数据存储到寄存器/内存
<2>修改栈顶指针ESP寄存器

修改EIP指令

1、JMP指令

MOV EIP,寄存器/立即数/内存 简写为 JMP 寄存器/立即数/内存

2、CALL指令

PUSH下一行地址
MOV EIP,立即数/寄存器/内存 简写为:CALL 立即数/寄存器/内存

与JMP唯一的区别:
在堆栈中存储CALL指令下一行地址

将call之后的值放到EIP中,再将call前面的下一个地址存到堆栈中

3、RET指令

ADD ESP,4
MOV EIP,[EIP+4] 简写为:RET

把堆栈中的值取出来,存到EIP中,同时将ESP的值加4;
所以一般ret指令与call指令连用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值