Come fanno i virus a sapere se hanno già infettato un sistema o fatto qualcosa?

2

So che alcuni virus ripetono le stesse azioni più e più volte senza interruzioni, interrompendo così la rete. Ma altri "prendono una pausa" da lì azioni ripetitive.

Ad esempio Nimda esegue il suo invio di massa routine ogni 10 giorni. Come fa a sapere "10 giorni"? Non è in grado di creare un file con la data in cui è stato fatto l'ultimo, sarebbe un regalo scarno agli AV.

Un altro è il worm Sasser . "Tenta di creare un mutex chiamato JumpallsNlsTillt ed esce se il tentativo fallisce, assicurando che non più di una istanza del worm possa essere eseguita su un computer in qualsiasi momento." Non sarebbe una donazione morta per gli AV? Cos'è esattamente un mutex?

    
posta Celeritas 28.06.2012 - 21:34
fonte

2 risposte

2

Non esiste un modo predefinito per il comportamento di un virus. Spetta alla creatività e alle capacità del creatore del virus. Per verificare se un eseguibile è già "infetto" può essere semplice come: il file F contiene X ?

Ad esempio:

Propagazione

while (true)
    file = random executable
    if (file does not start with 123)
        prepend virus to file

Ogni nuovo file conterrà il virus (molto probabilmente la versione del virus) che entrerà nella propagazione.

Fase di attivazione

Il virus si attiva; questo può essere basato sull'orologio (come descritto da Andrew Smith) o sul numero di volte in cui il virus si è copiato da solo. Potrebbe anche essere semplice come file / processo da qualche altra parte mantenendo traccia ("file con la data") - probabilmente MUTEX.

Credo che sto cercando di dire che non esiste un modo definito in cui un virus si comporterà o farà qualcosa. Si riproduce da A , si innesca con B ed esegue C ; questa è la sua bellezza.

A , B e C uguali a quelli che vuoi che siano uguali.

Se fai qualche ricerca su google, troverai alcuni virus storici che potrebbero essere interessanti e fornisci informazioni su come alcuni di essi hanno funzionato in termini di propagazione e attivazione.

Mutex

Potrei rispondere o potrei semplicemente indirizzarti a questa pagina e wiki :)

    
risposta data 29.06.2012 - 05:59
fonte
4

Nimda sta usando una semplice funzione. Prendendo il numero di secondi dall'inizio dell'epoca, lo divide per 60 secondi, 60 minuti, 24 ore e poi per 10 e se modulo = 0, quindi esegue un attacco, a condizione che il modulo = 0, che accade ogni 10 giorni per un periodo di 24 ore. link 10 mod 10 = 0, quindi prendendo il numero di giorni dall'inizio di epoca puoi eseguire un attacco per 24 ore ogni 10 giorni.

Process mutex è un tipo di blocco che aiuta a gestire il processo in modo che non si avvii una volta che è già in esecuzione in questo modo. Questo è molto utile apparentemente.

link

    
risposta data 28.06.2012 - 21:40
fonte

Leggi altre domande sui tag