Compago

...free knowledge

 
  • Increase font size
  • Default font size
  • Decrease font size
Home Manuali Programmazione Structured Excepition Handling ovvero SEH - Eliminare la terminazione della applicazione

Structured Excepition Handling ovvero SEH - Eliminare la terminazione della applicazione

E-mail Stampa PDF
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



Ultimo aggiornamento ( Sabato 19 Giugno 2010 18:23 )  
Italian English French German Portuguese Russian Spanish

Articoli correlati