Come può un virus polimorfico decifrare ed eseguire porzioni del codice durante il runtime?

-3

Ho trovato questo articolo su un virus polimorfico che ha crittografato e decodificato se stesso durante il runtime. L'articolo diceva che l'unica parte non crittografata era uno stub che decriptava la parte successiva del virus. Come può eseguire il codice che è stato crittografato e quindi decodificato? Il virus non è stato scritto in una lingua interpretata.

    
posta Fluffy 12.04.2016 - 01:13
fonte

1 risposta

1

Non ho sviluppato un virus polimorfico ma l'idea di crittografare parte di qualsiasi eseguibile (ELF, PE o altro) non è inimmaginabile per me.

Finché c'è una parte di codice che non è crittografata per avviare il processo (lo stub nella descrizione), dovrebbe funzionare. Ricorda che (anche se non sono crittografati, ma invece compressi), il kernel Linux comprime gran parte dell'immagine e usa un meccanismo analogico per decomprimere l'immagine durante il boot anche.

Finché lo stub iniziale costituisce una semplice istruzione eseguibile che la CPU comprende, il codice può sempre tenere traccia dell'indirizzo di memoria, il puntatore di istruzioni (EIP).

Tutto il codice deve essere sicuro che prima che l'EIP raggiunga l'indirizzo delle istruzioni da eseguire, il contenuto (le istruzioni) a tale indirizzo vengono decodificati. Allo stesso modo, la logica del codice deve essere sicura di non dereferenziare alcun indirizzo che punta a un intervallo di memoria crittografato (a meno che lo scopo non sia quello di decrittografarlo).

Ha senso?

    
risposta data 12.04.2016 - 01:31
fonte

Leggi altre domande sui tag