Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Eseguire eseguibile da MemoryStream? (xD)
Forum - C# / VB.NET - Eseguire eseguibile da MemoryStream? (xD)

Avatar
thecoder69 (Normal User)
Newbie


Messaggi: 1
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 20:07
Martedì, 28/04/2009
Ciao raga,
Volevo chiedervi se è possibile avviare un file eseguibile che ho caricato in memoria.
Non ha scopi "maligni" anche perchè sarebbe molto facile prendere il file dal blocco di memoria, ma ciò mi serve per rendere più sicuro il mio programma dalla copia.
Ho provato nel modo più stupido ma ovviamente non funziona:
Shell(memorystream)

Sapete aiutarmi?
Vi ringrazio molto, e confido in voi!!!!:heehee:

Ciao!!!

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 23:59
Martedì, 28/04/2009
Ni ... puoi e non puoi.

La creazione di un processo avviene tramite la API CreateProcess che si aspetta un riferimento ad un file su disco dove risiede l'immagine dell'eseguibile.

Pero' si può fare (e mi risulta che sia stato fatto) tramite la API nativa ZwCreateProcess che pero' non e' documentata (almeno non completamente) e con un po' di codice "sporco" (nel senso di "non affidabile" ...).

La via migliore e' comunque quella di caricare in memoria una DLL ed eseguire le funzioni contenute eseguendole dinamicamente. Ovviamente, in questo caso, ci sono delle limitazioni.

Ultima modifica effettuata da theprogrammer il 29/04/2009 alle 0:10
PM Quote