【发布时间】:2017-05-09 22:57:18
【问题描述】:
我是逆向工程的新手。每当我反汇编一个程序时,我总是发现ebp寄存器的值是8的倍数。
ebp寄存器的值总是8 的倍数 还是只是我的观察?
【问题讨论】:
-
附带说明,在 Windows x86 上,EBP 寄存器在 4 上对齐,但并不总是 8 的倍数。
标签: gcc reverse-engineering disassembly
我是逆向工程的新手。每当我反汇编一个程序时,我总是发现ebp寄存器的值是8的倍数。
ebp寄存器的值总是8 的倍数 还是只是我的观察?
【问题讨论】:
标签: gcc reverse-engineering disassembly
出于性能原因,现代 x64 调用约定要求堆栈与 16 字节对齐。 https://msdn.microsoft.com/en-us/library/ms235286.aspx https://en.wikipedia.org/wiki/X86_calling_conventions
GCCs x86 调用约定也是如此。
我可以假设这与ebp 相关,而不仅仅是esp。
【讨论】: