Oppure

Loading
24/05/09 7:47
Il Totem
Non aspettarti una risposta da me, è ilprogrammatore10 che l'ha detto.

Comunque, se provi a enumerare le finestre attive con EnumWindow, vedrai che ne ne sono molte che sono senza titolo e non hanno interfaccia. Questo significa che non tutti i processi senza interfaccia sono privi di finestre (sembra uno dei quesiti di logica dei test di ingresso XD).
aaa
24/05/09 8:47
theprogrammer
Postato originariamente da Il Totem:

Non aspettarti una risposta da me, è ilprogrammatore10 che l'ha detto.


Invece me la aspettavo da te dato che tu hai scritto

"Ma ho visto che ci sono programmi che svolgono questa funzione."

Comunque, se provi a enumerare le finestre attive con EnumWindow, vedrai che ne ne sono molte che sono senza titolo e non hanno interfaccia.

Questo significa che non tutti i processi senza interfaccia sono privi di finestre


Questo fatto non ha nessuna attinenza con quello di cui si parlava ... ma non vorrei andare (troppo) OT.

In ogni caso, chi ha fatto la domanda non e' interessato ... va bene cosi'.
aaa
25/05/09 18:03
Il Totem
Il fatto che io abbia visto programmi che lo fanno non implica che io sappia spiegare come agiscono.
Se un processo possiede un handle e un form, non è detto che non sia nascosto.
aaa
25/05/09 18:10
theprogrammer
Postato originariamente da Il Totem:

Il fatto che io abbia visto programmi che lo fanno non implica che io sappia spiegare come agiscono.


Non ho detto questo ... non ci capiamo ... Non voglio sapere da te come agiscono, ma di quali programmi parli ... Posso trovarli da qualche parte su Internet ? O no ?

Se un processo possiede un handle e un form, non è detto che non sia nascosto.


Per "nascosto" intendo che non sia rintracciabile in nessun modo tramite le funzionalita' del sistema (comprese le sue API).

Se c'e' un handle, il processo esiste ed e' "rintracciabile" (cosi' evitiamo incomprensioni sul termine "nascosto";).
aaa
25/05/09 18:49
theprogrammer


Ok ...grazie (finalmente mi sono spiegato) ...

DeepMonitor (primo link) controlla la presenza di codice "rootkit" (che, come ti ho detto qualche post fa, e' un caso a parte). In realta' controlla che non ci sia "extracodice" in processi gia' esistenti (e legali) come explorer.exe. Chiama "processo nascosto" questo extracodice impropriamente dato che il processo esiste (explorer.exe) e il codice se ne serve (come un virus). Qualsiasi handle creato dall' extracodice fa comunque riferimento al processo "infettato" (explorer.exe ad esempio).

Il codice del secondo link, fa uso di un device driver che "inganna" il sistema operativo circa l'esistenza di un processo. E' un caso molto simile ai rootkit con la differenza che l'"inganno" non avviene a livello di "dll del kernel" ma di "kernel device driver". In quel caso tramite un handle si potrebbe non arrivare al processo ma molto probabilmente (non ho provato, ma mi piacerebbe farlo, avendo un po' di tempo) al device driver. E il device driver esiste e non si puo' nascondere ...

Per tornare alla richiesta, non mi sembra chiaro cosa voglia dire con

"io utilizzo l'handle per trovare anche i processi nascosti"

ovvero se si riferisca a processi "malevoli", che adottano le tecniche di cui abbiamo parlato, o ad alro tipo di processi meno "cattivi" ... e che tipo di programma stia scrivendo (magari potrebbe farlo in modo diverso).
aaa
28/05/09 18:06
ilprogrammatore10
Io avrei bisogno di rilevare se un processo dannoso per il mio software è avviato. Ovviamente mi sto rendendo conto che la via che avevo deciso di adottare è la più inadatta.... Avrei pensato di esplorare la RAM per rendere in questo modo, impossibile nascondere alcun processo, dato che i dati dell'esegubile per essere eseguito vengono "portati" nella memoria RAM dalla ROM.
L'unico problema è che ho il sospetto che ciò sia molto difficile da attuare e credo impossibile sul .NET.... voi che ne pensate??

ilprogrammatore10
aaa
28/05/09 20:52
theprogrammer
Postato originariamente da ilprogrammatore10:

Io avrei bisogno di rilevare se un processo dannoso per il mio software è avviato.

E come vorresti farlo? Cioe', hai pensato di voler fare questa cosa, ma hai idea di quanto possa essere complesso?

Ovviamente mi sto rendendo conto che la via che avevo deciso di adottare è la più inadatta....

Esatto. Ma non e' che c'e' una via adatta e semplice.

Avrei pensato di esplorare la RAM per rendere in questo modo,

Esplorare la RAM, in un sistema moderno, non e' affatto una cosa semplicissima.

E ammesso che ci riesci, per cercare cosa?

impossibile nascondere alcun processo, dato che i dati dell'esegubile per essere eseguito vengono "portati" nella memoria RAM dalla ROM.

La ROM non c'entra molto con il discorso ...

L'unico problema è che ho il sospetto che ciò sia molto difficile da attuare e credo impossibile sul .NET.... voi che ne pensate??

Devo essere molto sincero, perche' e' l'unico modo per risponderti seriamente. Penso, senza offesa, che tu sia molto lontano dal poter solamente iniziare ad affrontare un compito del genere.

Lo strumento e' il meno adatto e il compito prevede una approfondita (ma tanto approfondita) conoscenza del sistema usato in particolare e dei sistemi in generale.


ilprogrammatore10
aaa