Oppure

Loading
28/04/09 18:07
thecoder69
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!!!
aaa
28/04/09 21:59
theprogrammer
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 28/04/09 22:10
aaa