Nascondi un processo da un altro processo


0

Ho il programma B che non è progettato per essere avviato all'avvio del programma A. Ho bisogno di superare questa limitazione. B mostra una finestra di messaggio "A is running" che punta al nome del processo A e al PID del programma. Presumo che B inizi a cercare A da un elenco di processi, quindi la rimozione di A da un elenco di processi potrebbe aiutare. Entrambi i processi hanno finestre e richiedono l'input dell'utente.

Cosa sono stati provati finora:

  • Rinomina processo A
  • Cercare politiche sui titoli per limitare determinati utenti all'elenco di determinati processi
  • In esecuzione in un altro ordine
  • Controllato un numero di programmi di utilità, ma tutti aiutano a nascondere solo una finestra
  • Ho trovato questo https://www.codeproject.com/Articles/32744/Driver-to-Hide-Processes-and-Files ma non è garantito che funzioni su Win10 e richieda la compilazione da fonti

Ho Windows 10.


1
Senza sapere esattamente come A rilevi B questa risposta è estremamente difficile da rispondere dato che semplicemente lanceremmo idee al muro. Per quanto riguarda la domanda di programmazione se hai la fonte per entrambi i programmi, questa è una domanda SO, non una domanda SU
Ramhound

Quali sono i processi A e B?
Mokubai

Penso che la mia risposta dimostri che questo è in realtà responsabile dato il modo in cui Windows isola i processi nel contesto degli account utente.
Twisty Impersonator,

Risposte:


2

TL; DR: QUESTI SONO I SUONI COME UNA CATTIVA IDEA

C'è probabilmente una buona ragione per cui B è stato progettato per non funzionare mentre A è in esecuzione. La prima cosa che viene in mente è che condividono un database, chiavi di registro o qualche altra fonte di dati binari che possono essere danneggiati se gestiti da due thread contemporaneamente. Ad ogni modo, senza fornire ulteriori informazioni sui programmi e su come B potrebbe fare per rilevare A, tutto quello che chiunque può fare è indovinare. Se si tratta di un programma Windows, il Programma A probabilmente scrive un tipo di chiave di registro che B verifica all'avvio. Ma poi potrebbe anche chiudere una sorta di file temporaneo. La possibilità di nascondere cose da qualsiasi tipo di elenco di processi mi renderebbe molto cauto nel continuare a utilizzare quel sistema in quanto avrebbe serie conseguenze sulla sicurezza. In pratica stai chiedendo come eseguire il rootkit del tuo sistema.


1

Presumo che B inizi a cercare A da un elenco di processi ...

Scenario 1: il controllo del programma per l'altro programma non richiede l'esecuzione di diritti amministrativi.

Se il programma B non richiede l'esecuzione di diritti amministrativi (incluso l'uso di servizi in esecuzione con diritti di amministratore), eseguirlo nel contesto di un altro account utente sul computer che non dispone dei diritti di amministratore . Per fare ciò, Shift+ Fai clic con il pulsante destro del mouse sul programma per ottenere l' opzione Esegui come altro utente .

Il programma verrà eseguito nel contesto dell'altro account utente e poiché l'account non dispone dei diritti di amministratore, non è in grado di enumerare i processi in esecuzione nel contesto di altri utenti. Pertanto non sarà in grado di "vedere" il processo dell'altro programma.

Se hai bisogno dei programmi per condividere l'accesso al filesystem o alle risorse del Registro di sistema, concedi semplicemente a entrambi gli account utente l'accesso a tali risorse. Ciò non consentirà a un programma di vedere l'altro.

Scenario 2: il controllo del programma per l'altro programma richiede l'esecuzione di diritti amministrativi.

Un'applicazione che viene eseguita nel contesto di un account con autorizzazioni amministrative può fare tutto ciò che desidera sul tuo computer, rendendo estremamente difficile sovvertire la sua prerogativa per esercitare tali privilegi. L'unico modo per procedere sarebbe conoscere i test esatti che il programma sta eseguendo per determinare se l'altra app è in esecuzione, quindi agganciare le varie chiamate di funzione API coinvolte per rimuovere l'esistenza del programma di destinazione dai dati restituiti. Ecco come i rootkit nascondono la loro presenza su un computer. In questo modo non rientra nell'ambito di questa risposta specifica (e il sito Super User in generale).


Grazie per il tuo commento dettagliato. Sono stato in grado di eseguire B come utente con tipo "Utente standard", mentre A era in esecuzione come utente con tipo "Amministratore". Questo non ha fatto alcuna differenza. B in realtà è stato avviato dall'URL di Borwsers, che è stato aperto con un processo che ne avvia un altro, ma ho verificato che tutti funzionavano come "Utente standard". Posso perdere qualcosa per questo test?
VladimirLenin,

@VladimirLenin Devi essere errato nel presupporre che il programma B stia enumerando i processi in esecuzione per scoprire A. Chiaramente devi sapere esattamente come il programma sta scoprendo l'altro. La mia risposta riguarda solo la tua domanda affermando che presumo che B inizi a cercare A da un elenco di processi
Twisty Impersonator
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.