IDA Pro zobrazuje určité vyrovnávací paměti nebo výplně nad (na nižších adresách) lokální proměnné v zobrazení rámce zásobníku. Například:
Příklad 1.
Následující snímek obrazovky zobrazení rámce zásobníku zobrazuje 12 bajtů (obsažených v červeném poli) vyrovnávací paměti:
Příklad 2.
Následující snímek obrazovky s jiným zobrazením rámce zásobníku opět ukazuje vyrovnávací paměť 12 bajtů:
Chápu, že jej IDA označil jako db?; undefined
protože nemohl přijít na to, jak byl použit. Také si uvědomuji, že IDA automaticky vypočítává velikost rámce zásobníku sledováním ESP. Předpokládal bych, že by to mohlo mít něco společného s nevolnou oblastí uložení registru. V Příkladu 1 však jasně ukazuje Uložené regs: 0
a v Příkladu 2 ukazuje Saved regs: 4
. Jsem zmatený a tady jsou moje otázky:
Proč IDA Pro zobrazuje určité vyrovnávací paměti nebo výplně nad (na nižších adresách) lokální proměnné v zobrazení rámce zásobníku? Je náhoda, že oba pohledy zobrazují přesně 12 bajtů vyrovnávací paměti? Je to něco konkrétního pro určitou konvenci volání nebo pro dodržování předpisů?