Newsgroup: it.comp.lang.delphi
Titolo: Protezioni software e macchine virtuali

Per tutti quelli sviluppano applicazioni con protezione software: come 
ovviare al fatto che l'applicazione possa essere acquistata da qualcuno > 
installata su una macchina virtuale > registrata e attivata, e poi 
l'immagine della macchina virtuale distribuita su sistemi p2p, regalata 
all'amico, data in giro da un rivenditore a dei propri clienti, eccetera, 
diffondendone in questo modo un numero potenzialmente illimitato di copie 
tutte registrate e funzionanti, tenendo presente che dalla macchina virtuale 
l'hardware "fisico" del pc reale non è visibile, e qualunque chiamata alle 
funzioni tipiche delle protezioni software (serial dell'hd, dati del bios, 
ecc.) fa riferimento, sempre e comunque all'hardware emulato. 

imho, la vedo dura.
anche il sistema di registrazione adottato per winxp pare sia stato
crackato....
A.

 tutte registrate e funzionanti
Ovviamente se il tuo software lavora "standalone" non hai modo di
controllare le copie (il warez vive su questo).
Il tuo software (il client) deve invece controllare l'esistenza degli
update con un tuo web server. Ad ogni richiesta, ti fai dare un codice
univoco, poi nella risposta fornisci un dato in più che l'applicativo
client persisterà e che tu ti salvi in un db delle richieste. Ogni volta
che il client itnerrofa il server, deve fornire l'ultima chiave ricevuta.
Così facendo, ogni client interrogherà il tuo webserver con i dati
dell'ultima domanda eseguita, se ne ricevi qualcuna precedente agli ultimi
dati inviatigli allora e' un clone.
Sono stato abbastanza chiaro? 
So che a volte non mi spiego molto bene, e vado pure di fretta...
Ciao
-- 
Morde

 crackato....
In realtà, è stato craccato il motore che certifica la genuinità del S.O. e
questo rende inutile l'utilizzo dei product keys (con o senza
registrazione). Se usi un product key craccato con il genuine craccato gli
aggiornamenti vanno lo stesso: almeno, questo e' quello che ho saputo io
dalle mie fonti..
 
-- 
Morde

 So che a volte non mi spiego molto bene, e vado pure di fretta...
Chiarissimo. Per quanto tecnicamente complessa da realizzare, sarebbe una 
protezione efficiente, sempre che i pc in questione fossero sempre connessi 
ad internet (e nei casi reali, come sai, non è sempre così, anzi sono molti 
i clienti che hanno letteralmente "paura" di collegare i loro pc ad internet 
perchè pensano di prendere virus, ecc.). Tu parlavi comunque di 
aggiornamenti, e la tua protezione in questo senso funziona. Ma, escludendo 
per un attimo il discorso degli aggiornamenti, e fermandoci ad una certa 
versione "x" del software, registrata, funzionante e diffusa in 100 
copie-clone che girano su altrettante macchine virtuali sparpagliate tra 
vari utenti, tutte impostate con rete disconnessa, la protezione fallirebbe, 
dal momento che il web server non sarebbe mai interrogato, e il programma 
girerebbe come registrato a tempo indefinito.
Certo, si potrebbe far interrogate il server web ad ogni esecuzione del 
programma, ma a quel punto la protezione (la procedura che interroga, 
preleva il codice, ecc.) potrebbe essere aggirata-craccata piuttosto 
facilmente, a meno, anche in questo caso, di usare offuscatori, ma la cosa 
si fa davvero complessa a questo punto. Mah, come dice Alberto, la vedo 
dura. 

 dura.
Concordo con la tua analisi e con la conclusione di alberto.
Ma...ehehe...ricordati sempre di tenere conto della realtà in cui ti trovi!
Se per usare un programma di 10 megabite uno si deve scaricare una immagine
di virtual machine, caricarla ed usarla, prendere i risultati
dell'elaborazione, salvarseli e buttare via la snapshot.... insomma, e'
dura proteggersi contro i crackers, ovviametnte, ma non e' questo il punto.
Il punto e' che per evitare la diffusione illecita del tuo software, non
hai altri mezzi che creare intorno ad esso una serie di servizi di qualità,
dai quali l'utente deve essere indotto a dipendere.
Il tuo software, che cosa fa? In quali campi si applica? 
Anche questo e' importante... e poi, tieni sempre presente la praticità:
nessuno scarichera' mai un'immagine virtuale per usare photoshop craccato!
Anzi, non mi e' proprio nota questa ipotesi...
ciao!
-- 
Morde

Il Fri, 22 Feb 2008 14:49:03 +0100, Zanx ha scritto:
Per i programmi semplici, di basso costo, uso il sistema di inserire, nel 
banner iniziale visualizzato dal programma, il nome del cliente a cui è 
stata venduta la licenza d'uso. Naturalmente il cliente non può 
modificarlo ed il programma verifica, prima di avviarsi, che il dato sia 
intatto.
Per i programmi più complessi (e costosi) aggiungo l'utilizzo della 
chiavetta hardware e della registrazione durante l'installazione, 
obbligando l'utente a telefonarmi.
Questo piccolo stratagemma finora ha dato dei buoni risultati.
Jodi

Non credo che valga la pena di preoccuparsi molto dei programmi usati in
maniera fraudolenta tramite registrazione fatta dentro un macchina virtuale.
E' troppo poco pratico. Se il programma e' buono allora per qualcuno
varra' piuttosto la pena di craccarlo.
In ogni caso prima di effettuare la registrazione il programma potrebbe
verificare di non stare girando dentro una macchina virtuale.
vedi:
http://www.codeproject.com/KB/system/VmDetect.aspx
Piuttosto non ho capito bene come tu Jodi fai per unire il controllo
chiavetta e registrazione (io li uso in altenativa)
grazie
edoardo
--- posted by geoForum on 
http://www.delphiedintorni.it

O meglio questi:
http://www.swissdelphicenter.ch/torry/showcode.php?id=1756
http://www.swissdelphicenter.ch/torry/showcode.php?id=1819


 chiavetta e registrazione (io li uso in altenativa)
Sono due controlli distinti:
1.se
 la chiavetta non è presente oppure è quella sbagliata il programma 
si ferma.
2. se il programma non si è fermato al punto uno, verifico se nel pc sono 
già presenti le informazioni create da una precedente installazione. Se 
non ci sono, chiedo la registrazione e creo le info predette.
Jodi