| Indice |
|---|
| Structured Excepition Handling ovvero SEH |
| SEH frames |
| SEH in una applicazione multithread |
| Exploit tramite SEH |
| Eliminare la terminazione della applicazione |
| Tutte le pagine |
Immaginando che lo shellcode abbia preso il controllo, la prima cosa che dovrebbe fare sarebbe quella di registrare una propria gestione delle eccezioni , inserendo quindi un frame SEH in cima alla catena:
PUSH handler ; Scrive l'indirizzo del nuovo "gestore".
PUSH FS:[00000000h] ; Scrive l'indirizzo del puntatore al precedente frame SEH.
MOV FS:[00000000h], ESP ; Registra il nuovo frame SEH.
In questo modo se lo shellcode toccasse inavvertitamente qualche parte di memoria
protetta o in qualsiasi modo causasse un errore l'applicazione non verrebbe terminata, grazie al nuovo gestore che potrebbe impedirlo. Il controllo verrebbe rimandato allo shellcode che magari terrebbe conto dell'informazione e cambierebbe tattica o algoritmo.
A volte quello che conta non è prendere il controllo quanto mantenerlo!
Per approfondire sull'argomento SEH vi rimando al sito http://win32assembly.online.fr/Exceptionhandling.html





