Cosa significano questi termini in relazione ai virus e al sistema operativo?

2

Spesso ho sentito virus usare "hook" e "embedding" nei file. Ad esempio da articolo di Wikipedia su Mebroot

The Trojan tries to avoid detection by hooking itself into atapi.sys. It also embeds itself in the Ntoskrnl.exe.

Che cos'è un gancio? Cosa significa incorporare? Un file eseguibile (come Ntoskrnl) non è come un file di testo in cui puoi semplicemente aggiungere elementi alla fine. Per quanto ne so, non puoi modificare arbitrariamente un eseguibile (se ho torto, allora la mia domanda è: come fanno i virus?).

    
posta northerner 18.07.2017 - 11:48
fonte

2 risposte

1

Il software dannoso utilizza spesso l'API di Windows (Application Program Interface) per eseguire le sue attività. In alcuni casi il malware monitorerà e aggancia queste funzioni, ci sono molti modi per farlo:

  • Inline
  • IAT (tabella degli indirizzi di importazione)
  • EAT (Export Address Table)
  • Pagine di guardia

L'aggancio di una funzione consente al programma di analizzare e / o modificare i parametri della funzione o di restituire il risultato. Questo può essere usato per nascondere soluzioni antivirus, caricare più codice dannoso in altri processi ecc ...

L'aggancio Inline viene spesso ottenuto sovrascrivendo i primi pochi byte della funzione con un salto al codice dannoso.

Gli hook

IAT e EAT sono modifiche all'intestazione PE (Portable Executable) che reindirizza le funzioni chiamate al codice dannoso.

Pagine di protezione può essere utilizzato per agganciare le funzioni in quanto il malware può impostare le pagine di guardia sui primi byte di una funzione e gestire l'eccezione quando viene eseguita la memoria.

Il codice

Infecting / Embedding nei file eseguibili richiede una conoscenza approfondita del formato PE. Usando l'API di Windows un programma può leggere e scrivere su file su disco. I passaggi di base che un programma dovrebbe seguire per infettare un eseguibile:

  • Apri il file eseguibile con accesso in lettura e scrittura

  • Crea una nuova sezione nell'eseguibile e scrivi lo shellcode nel file

  • Modifica il punto di ingresso PE in modo che punti a indirizzo virtuale della nuova sezione

Se sei interessato al formato PE, ti suggerisco questo link: link

    
risposta data 18.07.2017 - 13:23
fonte
1

A volte i termini embedding e hooking sono usati intercambiabili, ma dal mio punto di vista l'obiettivo di embedding è più quello di aggiungere un nuovo comportamento piuttosto che modificare il comportamento o osservarlo che sarebbe piuttosto un aggancio.

È possibile aggiungere codice arbitrariamente a un eseguibile introducendo un codice personalizzato e un salto ad esso dal codice originale. Ciò è possibile alterando il file eseguibile o il processo di caricamento del file. Ad esempio il trojaner mebroot si incorpora a ntokrnl.exe usando un componente che è in grado di intercettare tutte le operazioni del disco per modificare il file ntokrnl.exe mentre viene caricato.

    
risposta data 18.07.2017 - 13:28
fonte

Leggi altre domande sui tag