SafeSEH și x64 (Securitatea informațiilor, Windows, Exploit, Buffer Overflow, Shellcode)

John Smith a intrebat.

Am citit aici

/SAFESEH este valabil numai atunci când se face o legătură pentru ținte x86. /SAFESEH nu este acceptat pentru platformele care au deja gestionarii de excepții menționați. De exemplu, pe x64 și Itanium, toți gestionarii de excepții sunt notați în PDATA.

Ce înseamnă acest lucru? Este verificat lanțul SEH cu o țintă x64 (memorată în structura PDATA)? Sau nu există o verificare safeSEH cu ținte x64?

1 răspunsuri
Polinomul

SafeSEH este un mecanism care protejează lanțurile gestionarilor de excepții bazate pe stivă împotriva suprascrierii. Cu toate acestea, pe arhitecturile x64 și Itanium, gestionarii de excepții se bazează pe tabele (adică sunt stocate în PDATA) și, prin urmare, nu pot fi suprascrise direct de o depășire a bufferului de stivă – pur și simplu nu sunt pe stivă. Ca atare, SafeSEH este irelevant pentru aceste sisteme.