逆向基础学习(三)

指令运用理解

堆栈运用理解
分析qq的某浏览器套件,只是分析理解运用,并没有任何违规操作(保命要紧)
打开寄存器窗口里,查看FS的值
在这里插入图片描述
通过查看,可以看到堆栈栈顶位置及栈底位置
在这里插入图片描述
在这里插入图片描述
通过栈利用方式,可以帮助理解程序运行中的堆栈利用,所谓栈溢出就是栈顶位置满了,内存不够分配而导致的,通过图可以看出,从最大的0019FFFC到最小的0019D000,如果超出界限,就会发生错误。

不同寄存器不同用途,栈指针寄存器ESP,通过ESP来观察,点击栈跟随,可以看到变化
在这里插入图片描述
在地址上0019FFF0上的地址,没有被使用过,使用时从这个位置网上利用,存储运行过程的值
通过修改堆栈的值
在这里插入图片描述
将EAX的值存入对战
在这里插入图片描述
可以观察到,已经将EAX的值存入堆栈
在这里插入图片描述
在这里插入图片描述
通过其他命令实现和PUSH相同的效果
在这里插入图片描述
通过寄存器ESP的值修改,来实现栈顶指针的修改,通过观察下面两张图可以看到相关命令的效果,SUB时指针向上移动,ADD时指针向下移动
在这里插入图片描述
在这里插入图片描述
这里说明一下,由于不予许写入内存,所以无法完全实现PUSH的相关功能,这里只是相关理解(能力还不到能修改的境界,有点难受,相关命令为MOV DWORD PTR DS[地址],2)

下面来看POP的使用
在这里插入图片描述
在这里插入图片描述
执行命令,可以看到堆栈指针退回到原来位置
在这里插入图片描述
输入多行命令观察堆栈变化,初始状态
在这里插入图片描述
在这里插入图片描述
执行命令后状态
在这里插入图片描述
在这里插入图片描述
可以看到明显变化,这里只是分析理解,并没有做任何违规操作,希望理解

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值