AI摘要

本文介绍了内存地址、堆栈、寄存器窗口和汇编窗口的数据存放方式,以及寄存器的本质和显示逻辑。详细解释了五种内存寻址方式:直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址和相对基址变址寻址,并在OD中进行了演示。文章还展示了如何通过OD写一个堆栈的结构,包括堆栈的分配、压入数据、取出数据和弹出数据的过程。最后,提供了一些练习题目,帮助读者巩固对内存寻址和堆栈操作的理解。

寄存器窗口和汇编窗口的数据存放方式是由高到低
在数据窗口 数据是从低到高排列的 因为一般计算机都是小端存储

  • 寄存器的本质:CPU 寄存器(如 eax、ebx)是 CPU 内置的高速存储单元,它们没有内存地址(内存地址是给内存单元用的),本身就是存储数据的 “容器”。
  • 显示逻辑:OD 作为调试器,展示的是寄存器 “容器” 里装的内容,而非容器本身的标识(寄存器没有内存地址,只有名称)。
    寻址公式4
    reg+reg * {1,2,4,8}
  • 五种内存寻址方式在OD中的演示
  • 直接寻址
    mov 寄存器,内存编号//读值
    mov 内存编号,寄存器//写值
    lea 寄存器,内存编号//取内存编号的地址 下面其他寻址方式同理
    image.png
  • 寄存器间接寻址
    [reg]
    image.png
  • 寄存器相对寻址
    [reg+固定偏移量]
    image.png
  • 基址变址寻址
    [reg + reg* {1,2,4,8}]
    image.png
  1. 相对基址变址寻址
    [reg + reg* {1,2,4,8}+固定偏移量]
    image.png
  • 自己通过OD写一个堆栈的结构

image.png
堆栈的分配是从高地址往低地址分配

  • 压入数据

d340aa21-5175-4a8c-8da4-392b11b24312.png

  • 之后通过栈顶和栈底取出堆栈的数据
    image.png
  • 弹出数据
    image.png
    Push Pop
    image.png
    image.png
    练习
    image.png
    题目1-3:
    image.png


题目4-5:

image.png

题目6-7:

image.png

image.png

END
本文作者: 文章标题:滴水逆向三期-内存地址_堆栈
本文地址:https://blog.cvpotato.cn/Reversenote/33.html
版权说明:若无注明,本文皆INT3 blog原创,转载请保留文章出处。
最后修改:2026 年 04 月 02 日
如果觉得我的文章对你有用,请随意赞赏