Newsgroup: it.comp.lang.delphi
Titolo: Licenza e sicurezza

Ciao a tutti,
Supponiamo che si stia realizzando una applicazione e al suo interno ci sia 
un controllo del tipo:
if isValidLicense then
  begin
    // Licenza valida
  end
 else
  begin
    //  LIcenza non valida
  end;
con: isValidLicense una function che restituisca true o false dopo aver 
effettuato le opportune veirifiche su determinati parametri.
La domanda è: quale difficoltà comporterebbe (es: da 1 a 10) per un 
potenziale cracker sostituire il codice equivalente alla riga:
            if isValidLicense then
con uno ad esempio equivalente alla riga:
            if 1 = 1 then
in modo tale cosi da bypassare il controllo della funzione isValidLicense?
Se l'operazione di cui sopra per il potenziale cracker è abbastanza semplice 
da effettuare ci sono delle soluzioni alternative tali da evitare che ciò 
possa avvenire?
Mi interessa sapere in modo particolare solo per il caso specifico mostrato 
in esempio.
Grazie ancora. 



Abbiamo parlato molto spesso di protezione dei nostri programmi, basta che
cerchi in google groups su questo ng.
Il mio pensiero è che, siccome tutto e' craccabile, non bisogna troppo
investire su questo aspetto dello sviluppo quanto sul servizio che vuoi
offrire intorno al tuo prodotto. 
In passato ho realizzato un piccolo gestionale e l'ho protetto con un
sistema di chiave di sblocco usando il componente free tmxprotector.
Viene venduto da anni senza che ci sia mai giunta voce che il gestionale si
stato craccato. M,a anche se venisse craccato, trattandosi di gestionale ci
sarebbe poi tutta una seria di personalizzazioni (stampe, archivi, ecc) che
l'azienda pirata dovrebbe sostenere senza il nostro ausilio.. e non e'
cosi' semplice affidare la propria contabilità ad un software craccato che
non ti offre update e assistenza.
Sono stato prolisso ma credo abbastanza chiaro.. o no?
:-)
Ciao
-- 
Morde

> [MEGA QUOTE]
M'e' sfuggito tutto il quoting dell'OP, sorry.. :-/
-- 
Morde

 Grazie ancora.
Voto 1  basta un NOP o un Jump :)
Ti posso consigliare di cercare sul web OnGuard ex Turbopower.
http://sourceforge.net/projects/tponguard/
Molto semplice ed efficace :)

 Molto semplice ed efficace :)
Beh... sul "molto semplice" avrei dei dubbi: l'avevo provata nel momento in
cui ho iniziato a programmare in delphi e non era poi cosi' immediata per
un newbie. Tant'è che ero passato a tmxprotector.
Cmq è un ottimo prodotto, completo e professionale.
Ciao
-- 
Morde

 potenziale cracker sostituire il codice equivalente alla riga:
La difficoltà è pressoché nulla. I cracker ormai hanno dei pattern in base
ai quali analizzare e modificare il codice eseguibile è diventato una
bazzecola.
L'unico modo reale di proteggere un'applicazione è far sì che il codice da
eseguire non sia presente in locale, ma venga scaricato tutte le volte da
un sito al quale fare richiesta di validazione. In questo modo, sulla
macchina locale c'è solo uno "starter". Ovviamente, ogni singola
applicazione deve possedere il suo numero seriale.
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it


Grazie mille, terrò conto di questo suggerimento.

un sito al quale fare richiesta di validazione. In questo modo, sulla
Questa soluzione ha lo svantaggio che senza connettività non lavori - 
non è accettabile ovunque.
--- posted by geoForum on 
http://www.delphiedintorni.it

 non è accettabile ovunque.
Be', sì, era sottointeso.


Mi inserisco per approfondire un caso.
Nella azienda in cui lavoro alcuni software sono (da anni) protetti con un
sistema hardware, cioè una chiave hardware da collegare al PC, in assenza
della quale il software non viene eseguito. Ovviamente il software in
questione "giustifica" l'impegno di una simile soluzione (anche se di per se
l'impegno a livello di programmazione è poco, e anche quello economico è
modesto.... rimane più che altro il costo della loro gestione in generale).
La mia domanda è: questo sistema, oggi, continua ad essere un sistema
valido? Oppure subisce, da parte di cracker, una violazione altrettanto
semplice?
Noi non conosciamo casi di craccaggio, più facile che qualcuno chieda una
seconda chiave "denunciando" come smarrita la prima.....
Gianni

 semplice?
I cracker sono ormai capaci di superare agevolmente qualsiasi protezione.
Ci sono casi di software protetto con chiave hardware e perfettamente
craccato (Autocad è uno di questi e veniva sprotetto già molti anni fa).
Qualsiasi software presenti dei controlli nel codice è modificabile per
saltare quei controlli e queste modifiche sono più facili a farsi di quel
che sembra.



Se ad un sistema di protezione aggiungi del software che controlla se 
l'eseguibile e' stato modificato, forse rendi la vita piu' difficile a chi 
volesse crackarlo.
Un consiglio, gli if come quello sopra non inseriteli allo start, in quanto 
facilmente ritrovabili. Per esempio si puo' eseguire il controllo dopo che 
l'applicazione ha eseguito un numero (casuale con range da scegliere) di 
eventi  e non visualizzate niente in corrispondenza dell'if ma fate in modo 
che l'eseguibile non funzioni corretamente in modo da "nascondere" il 
momento di intervento della protezione.
Giorgio

Guarda...non dico di esser stato un cracker (oddio...con in mezzo un pò di 
prosciutto...),ma di assembler me ne intendevo molto fino all'apparizione 
dei pentium II (prima per quello che dovevo fare,l'assembler era l'unico 
strumento disponibile...vedi "demos"....per chi ricorda Future Crew sà di 
cosa parlo).
Un mio consiglio potrebbe esser quello di scrivere qualche routine del 
programma (non controlli,ma vero e proprio codice necessario ) e farlo 
svolgere ad un pic (protetto in fase di programmazione) collegato alla 
seriale (una specie di dialogo tra le 2 seriali pic/pc è facilissimo!).
In questo modo o sai veramente che fà la routine che piazzi sul pic o hai 
poco da "debuggare"...
Poi...a questo modo si cracca tutto...tutto stà in quanto vuoi "spendere" 
per la protezione.

 per la protezione.
Mi trovi daccordissimo: procurarsi un contratto con una casa di produzione
chiavi hw programmabili puo' costare fino a centinaia di euro a chiave, i
quali vanno a sommarsi al prezzo sul listino, e quindi addio
concorrenzialità dei prezzi, marketing aggressivo, ecc.. ec..
Il senso del mio discorso è che il costo della protezione al software va
ponderato attentamente in base a quello che si vuole ottenere col prodotto.
E' chiaro che se realizzi un programma e ne venderai qualche decina di
copie, a che ti serve gonfiare il listino col costo di una chiave hw?
Ciao
-- 
Morde