模拟栈时遇到的坑

看滴水逆向的时候,模拟栈不是简单的很,直接上手习题

模拟压入五个数,五个DWORD不过瘾啊,皮BYT一下,压入DWORD,DWORD,WORD,BYTE,BYTE炫个技给自己看喽

mov ebx,0x6FFB3C

mov edx,ebx

//关键来了

mov dword ptr ds:[edx],0x11111111

sub edx,0x4

mov dword ptr ds:[edx],0x22222222

sub edx,0x4

mov word ptr ds:[edx],0x3333

sub edx,0x2

 mov byte ptr ds:[edx],0x44

 sub edx,0x1

mov byte ptr ds:[edx],0x55

sub edx,0x1

F7走起,????,为啥内存数据是 00554400 33330000 22222222 11111111

画图呗,因为是存放word时出的问题,把栈设置为word大小

我咋把数据存1000-1004了, 然后导致的空出了位置,然后使用了word去填充dword的数据

还是太菜了,附上正确的图,出现错误的原因还是对内存理解不到位(都知道栈是反着存的,实践的时候还是出问题了,都存同样大小的数据时,就算存错了也不知道,皮一皮还是赚了一个理解错误点,快乐)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值