In che modo Windows pianifica un thread quando il thread non ha processi?

4

Ho sentito che alcuni rootkit cercano di nascondersi distruggendo l'oggetto del processo ( nt!_EPROCESS ?) mantenendo il thread vivo ( nt!_ETHREAD ?). In questo modo non sono visibili in strumenti come Task Manager o Process Explorer, che visualizzano i processi.

So che la priorità totale di un thread è calcolata da due parti:

  1. la priorità del processo, ad es. definito tramite CreateProcess () (MSDN) , parametro dwCreationFlags che accetta una priorità
  2. la priorità del thread, ad es. impostare tramite SetThreadPriority () (MSDN)

Ora, se l'oggetto del processo che contiene le informazioni di priorità è stato distrutto dal rootkit, il kernel di Windows non fallirebbe nel tentativo di calcolare la priorità totale di quel thread nascosto del rootkit?

    
posta Thomas Weller 06.06.2017 - 12:50
fonte

1 risposta

2

AFAIK, tutti i thread di un processo condividono lo stesso codice e segmenti di dati. In qualsiasi momento, un programma può chiedere il suo ThreadId e ProcessId. E un processo finisce solo quando tutti i suoi thread fanno.

Ma un malware può nascondere la sua attività dietro un processo rundll32 . Questo è solo un processo di sistema che viene utilizzato ad esempio quando i servizi sono implementati solo attraverso una DLL e non attraverso un eseguibile. Trovando tali processi comunemente nell'elenco dei task manager, è difficile indovinare dove si nasconda un'attività dannosa.

    
risposta data 06.06.2017 - 15:04
fonte

Leggi altre domande sui tag