IDA Pro wyświetla określony bufor lub dopełnienie powyżej (przy niższych adresach) zmiennych lokalnych w widoku ramki stosu. Na przykład:
Przykład 1.
Poniższy zrzut ekranu widoku ramki stosu przedstawia bufor 12-bajtowy (zawarty w czerwonym polu):
Przykład 2.
Poniższy zrzut ekranu przedstawiający inny widok ramki stosu pokazuje ponownie 12-bajtowy bufor:
Rozumiem, że IDA oznaczyło to jako db?; undefined
, ponieważ nie mógł dowiedzieć się, jak został użyty. Zdaję sobie również sprawę, że IDA automatycznie oblicza rozmiar ramki stosu poprzez monitorowanie ESP. Przypuszczam, że może to mieć coś wspólnego z nieulotnym obszarem zapisu rejestru. Jednak w Przykładzie 1 wyraźnie widać Zapisane reg .: 0
, aw Przykładzie 2 widać Saved regs: 4
. Jestem zdziwiony i oto moje pytania:
Dlaczego IDA Pro wyświetla określony bufor lub dopełnienie powyżej (przy niższych adresach) zmiennych lokalnych w widoku ramki stosu? Czy to przypadek, że oba widoki pokazują dokładnie 12 bajtów bufora? Czy jest to coś szczególnego w stosunku do określonej konwencji powoływania lub zgodności?