• Regolamento Macrocategoria DEV
    Prima di aprire un topic nella Macrocategoria DEV, è bene leggerne il suo regolamento. Sei un'azienda o un hosting/provider? Qui sono anche contenute informazioni per collaborare con Sciax2 ed ottenere l'accredito nella nostra community!

Release Process Agent MultiThreaded [opensource]

nothing

Utente Esperto
Autore del topic
4 Gennaio 2010
1.249
58
Miglior risposta
0
Process Agent MultiThreaded
Un agente in VB (multithread/multiuser) per il controllo remoto dei processi

Vi propongo un programma un po' articolato che consente il controllo dei processi di un computer remoto da parte di più utenti. Il programma è comunque di tipo didattico, ovvero deve essere migliorato e completato ma sono sicuro che vi interesserà in quanto fornirò questa prima versione in versione sorgente (completamente aperto) e commentato (quanto più possibile).

Il programma si rivolge a tutti ma se non riuscite ad afferrare tutto subito non vi preoccupate dato che bisogna avere ben presenti concetti (di programmazione di rete e di gestione del sistema) che qualcuno potrebbe attualmente ignorare. Sono comunque disponibile - limitatamente al tempo disponibile - a dare chiarimenti su richiesta.

Il codice è scritto in VB.NET (la versione originaria è in C# e, usa l'inglese) per facilitare la comprensione a chi ha confidenza solamente con questo linguaggio. Il tipo di progetto è un "Servizio NT" (NT Service, per meglio capire di cosa si parla, leggere questa introduzione
Perfavore, Entra oppure Registrati per vedere i Link!
). Da questo momento mi riferirò all'applicazione chiamandolo anche "servizio".

Il nome
Il nome del servizio è "ProcAgentMT" (Process Agent MultiThreaded).

Cosa fa
L'eseguibile viene installato nel computer in cui gira come "servizio" e si pone in attesa di richieste di comunicazioni in rete su una particolare porta, come farebbe un server (nota bene: l'installazione avviene a cura dell'amministratore, in maniera del tutto "trasparente" e "consapevole"; sia chiaro che non risponderò a nessuna richiesta di supporto per la realizzazione di malware tramite questo progetto).

Essendo un servizio, viene sempre eseguito in background, 24 ore su 24, anche se non viene effettuato alcun login sul computer (è adatto ad essere installato ed eseguito in server che non sono gestiti).
Una volta contattato sulla porta corretta, genera un thread per il nuovo utente e dialoga con questo consentendogli di eseguire particolari comandi da remoto che permettono una parziale gestione dei processi del server.

E' possibile gestire una semplice password per l'autenticazione al servizio, attualmente solo a livello di sistema e non di utente (è una possibile evoluzione del programma); la password è in chiaro come tutta la comunicazione (anche questa è una possibilità di miglioramento in versioni successive). Il servizio gestisce connessioni multiple da diversi client e da diversi utenti.

Come è realizzato
Il servizio è scritto in VB.NET e sfrutta il Framework 4.0 (viene utilizzato Visual Studio 2010). La creazione tramite versione Express non è direttamente possibile (vedere google per aggirare il problema) ma - come detto - fornirò il progetto completo di sorgente in modo che possiate utilizzarlo direttamente.

Come si usa
Una volta avviato, il servizio può essere contattato da n utenti sia con un programma client appositamente scritto (di cui non presento nessun esempio) o, più semplicemente tramite il comando TELNET (come mostrato negli esempi seguenti).
Attenzione ! Il servizio opera con le credenziali del sistema operativo e quindi espone il sistema stesso a possibili intrusioni remote che possono comprometterlo. Operate sempre su sistemi di test, poco importanti o non collegati ad Internet e, soprattutto, limitatamente al periodo di test. Quando non utilizzato, vi consiglio di arrestare il servizio.

La versione presentata
E' la 1.0 (ovviamente) e dispone delle funzionalità di base. Tanto si può migliorare (e vi darò alcune idee) ma ci vuole un po' di tempo e - magari - collaborazione. E' fornita sia in formato sorgente, sia in binario (gli eseguibili da installare).

Lo schema funzionale è il
Perfavore, Entra oppure Registrati per vedere i Link!


Il progetto completo, in formato sorgente, potete scaricarlo in un file .zip da
Perfavore, Entra oppure Registrati per vedere i Link!


La spiegazione completa del progetto e del suo codice, potete scaricarla in formato Word, da
Perfavore, Entra oppure Registrati per vedere i Link!
.
Sono un bel po' di pagine ... buona lettura (a chi avrà la pazienza di leggerlo).

Ovviamente, accetto suggerimenti ... @System32 @Garu
 
Riferimento: Process Agent MultiThreaded [opensource]

Se hai letto non dovresti chiedere una cosa che non ha senso.
 
Riferimento: Process Agent MultiThreaded [opensource]

Se hai letto non dovresti chiedere una cosa che non ha senso.

E' sempre una questione di sicurezza, siano queste sorgenti o non.
Gli utenti non sono tutti esperti allo stesso modo.

Non credo di aver chiesto la luna ;)
 
Riferimento: Process Agent MultiThreaded [opensource]

Non è un questione di sicurezza ma è solo indicativo di chi chiede le cose con il prosciutto sugli occhi.
Se qualcuno chiede la scansione antivirus su un file che contiene un sorgente, vuol dire che non capisce nulla di programmazione.
Come fa, dunque, ad essere moderatore di un forum di programmazione?

E non c'entra nulla essere utenti esperti o no.

Se la cosa ti fa stare meglio con te stesso ecco la scansione

Perfavore, Entra oppure Registrati per vedere i Link!


(ma cercate di ragionare in questo forum ...)
 
Riferimento: Process Agent MultiThreaded [opensource]

Non è un questione di sicurezza ma è solo indicativo di chi chiede le cose con il prosciutto sugli occhi.
Se qualcuno chiede la scansione antivirus su un file che contiene un sorgente, vuol dire che non capisce nulla di programmazione.
Come fa, dunque, ad essere moderatore di un forum di programmazione?

E non c'entra nulla essere utenti esperti o no.

Se la cosa ti fa stare meglio con te stesso ecco la scansione

Perfavore, Entra oppure Registrati per vedere i Link!


(ma cercate di ragionare in questo forum ...)

Forse la mia richiesta è stata esagerata, però è mio compito tener conto della sicurezza.
In un archivio potrebbe esserci di tutto, non è questo il caso, ma sono abituato a vedere persone che trovano tutti gli stratagemmi possibili per diffondere i propri virus.

Il mio compito moderativo è questo, chiedo scusa per la richiesta ;)

Possibilmente evita sempre di stare a criticare tutto poichè non è la prima volta e cerca di essere garbato con una persona che comunque cerca di svolgere il proprio compito al meglio.

Siamo persone non macchine, tutti possono sbagliare ;)
 
Riferimento: Process Agent MultiThreaded [opensource]

Possibilmente evita sempre di stare a criticare tutto poichè non è la prima volta

E non sarà l'ultima, quando ho i miei motivi.

e cerca di essere garbato con una persona che comunque cerca di svolgere il proprio compito al meglio.

Le mie considerazioni erano generali, non ho fatto il tuo nome.

Siamo persone non macchine, tutti possono sbagliare ;)

Certo ... è per questo che rispondo (criticando costruttivamente) ... per evidenziare gli inevitabili errori, ma non vedo che le mie "critiche" abbiano tanto effetto ...

In ogni caso, fatta la scansione dei sorgenti VB.NET e nessun virus trovato.
 
Riferimento: Process Agent MultiThreaded [opensource]

E non sarà l'ultima, quando ho i miei motivi.



Le mie considerazioni erano generali, non ho fatto il tuo nome.



Certo ... è per questo che rispondo (criticando costruttivamente) ... per evidenziare gli inevitabili errori, ma non vedo che le mie "critiche" abbiano tanto effetto ...

In ogni caso, fatta la scansione dei sorgenti VB.NET e nessun virus trovato.

Perfetto, io sono d'accordo nelle critiche possibilmente costruttive.
Io non lo faccio in cattiva fede, ma penso sempre a cosa si può andare incontro in questa sezione.

Chiedo ancora scusa ;)
 
Riferimento: Process Agent MultiThreaded [opensource]

Perfetto, io sono d'accordo nelle critiche possibilmente costruttive.
Io non lo faccio in cattiva fede, ma penso sempre a cosa si può andare incontro in questa sezione.

Chiedo ancora scusa ;)

Non c'è bisogno di chiedere scusa ... se ti dicono di farlo, tu lo fai, ma dovrebbe riflettere chi ti dà queste direttive.

Fra l'altro ...

[OT]cosa ti dice che tutte le scansioni non siano false (non ci vorrebbe molto) o che i file siano modificati dopo la scansione?
E cosa si fa se ci sono dei "positivi" ? Chi ti assicura che siano "falsi" ? Dovresti bloccare il thread ma non lo fai ... [/OT]

In ogni caso, buon lavoro ...
 
Riferimento: Process Agent MultiThreaded [opensource]

Strano...WinRAR non scompatta i file...
 
Riferimento: Process Agent MultiThreaded [opensource]

Ho usato Winzip 12 ... probabilmente il tuo WinRAR non riconosce il formato.

Ah ecco...comunque no problem, ho scaricato Winzip ed ho estratto i file. Il progetto è molto interessante, davvero, sto cercando di pensare ad un modo con cui gestire la password per un singolo utente...inoltre non mi è chiaro il perché il carattere backspace non sia valido durante l'input; me lo spiegheresti ?

NB: Ottimo lavoro :emoji_slight_smile:
 
Riferimento: Process Agent MultiThreaded [opensource]

Grazie, quello che spero è che il tutto possa essere migliorato ...

La questione del backspace è semplice ... supponi di inviare il comando PROCS e avere scritto

PROCE

poi cancelli E e scrivi S dato che avevi sbagliato. Quello che viene ricevuto è

PROCE<bs>S

che non è eguale alla stringa PROCS ... ok ?
 
Riferimento: Process Agent MultiThreaded [opensource]

Grazie, quello che spero è che il tutto possa essere migliorato ...

Lo spero anch'io, anche perché mi interessa come progetto e non sarebbe male contribuire a renderlo "migliore". Comunque ho scritto una banale funzione per togliere la stringa che rappresenta il carattere di backspace :

PHP:
Perfavore, Entra oppure Registrati per vedere i codici!

adesso sto cercando di capire come strutturare la possibilità del riavvio remoto.

La questione del backspace è semplice ... supponi di inviare il comando PROCS e avere scritto

PROCE

poi cancelli E e scrivi S dato che avevi sbagliato. Quello che viene ricevuto è

PROCE<bs>S

che non è eguale alla stringa PROCS ... ok ?

Chiaro :emoji_slight_smile:
 
Ultima modifica:
Riferimento: Process Agent MultiThreaded [opensource]

Ok ... poi magari integriamo le modifiche in una nuova versione comune.

Sarebbe interessante gestire lo "scambio di file" su più thread. Potrebbe essere il "nucleo" di un programma di sharing magari dotato di chat.
 
Riferimento: Process Agent MultiThreaded [opensource]

Ok ... poi magari integriamo le modifiche in una nuova versione comune.

Sarebbe interessante gestire lo "scambio di file" su più thread. Potrebbe essere il "nucleo" di un programma di sharing magari dotato di chat.

Scusami...ho capito male io : pensavo che avendo questo progetto opensouce e avendolo postato sul Forum volessi un aiuto nel completarlo ( anche se potresti completarlo da solo dato che ne sai molto più di tutti ) o comunque volessi coinvolgerci, apposta ho scritto quella stupida funzione, pensando che avresti integrato nel programma i nostri sorgenti.
 
Riferimento: Process Agent MultiThreaded [opensource]

Non hai capito male ... cosa ti ho fatto capire (involontariamente) di diverso?

Mi hai fatto capire che noi, dopo aver scritto eventuali funzioni/migliori nel codice, avremmo dovuto riadattarle noi.