关于gdb和内存地址的问题
逆向工程
数据库
2021-06-15 16:00:46
1个回答
堆栈本质上不是 64 位的,它只是一个可以包含任何内容的内存区域。
您特别要求 gdb 以 32 位数量转储内存:
x/32xw
32 是计数(你可以看到你有 8 行,每行 4 列),x是输出格式(十六进制),w是项目大小(“word” - 一个 32 位整数)。
如果要将内存视为 64 位项目的数组,请替换w为g("giant word" or a 64-bit integer)。要查看单个字节,请使用b.
至于寻址,每个 32 位项占用四个 8 位字节,因此其中的一行四个加起来为4*4=16,或0x10字节,这就是下一行从 开始的原因0x28fee0。地址0x28fed1处的字节存在于 0x28fed0 处的 32 位字内。尝试以不同的格式转储内存以了解数据布局。阅读小端。
其它你可能感兴趣的问题
