Newsgroup: it.comp.lang.visual-basic
Titolo: [OT] in merito alla sprotezione dei compilati

forse leggermente ot ... forse no ... e magari ampiamente
trattato, ma per quello che mi riguarda non ho trovato
quello che realmente cercavo.
Dunque partiamo dal presupposto che a me piace scrivere
e non cracckare codice, però un articolo di un giornale
di auto mi ha fatto ripensare che per proteggere le
auto bisogna farle provare agli scassinatori ... e credo che
il principio di fondo sia uguale anche qua per noi in vb
o per tutti gli altri codici che vogliamo.
Ammesso e non concesso che troviamo o avete già
trovato il più strafico dei modi per scrivere il vostro
serial number ... alla fin fine, ci dovranno sempre
essere delle chiamate da dentro al sorgente o da
dentro quello che ti pare ad un file esterno o comunque
delle condizioni che imposteranno una data variabile
a livello di progetto utilzizata per verificare se si può
o meno utilizzare tale programma.
Bene, da quello che ho letto, sembrerebbe che intercettare
tali chiamate con un visualizzatore esadecimale (?) non
sia poi più di tanto difficile ... allora mi domando ..
che cacchio ci scervelliamo a fare se poi basta eludere una
if ... ??
Ho letto anche di criptatori che criptano l'eseguibile in uscita e lo
decriptano in fase di entrata ... ma pure questi non è che
sia sicuri ... anzi già si trovano i crack ....
forse mi sfugge qualcosa ... ma sono giorni che sto cercando
delle linee guida su cosa bisognerebbe teoricamente fare,
ma nisba.
Ciao
Andrea

if ... ??
Sono d'accordissimo con te ;-)
-- 
ciao, hal

if ... ??
Infatti imho non bisogna scervellarsi troppo: un serial numerb
semplice... magari qualche check sparso qua e là... nulla di più...
giusto per tener lontani i pirati della domenica!
Se il tuo software merita davvero qualunque protezione studi uno bravo
in qualche ora la elimina... se viceversa il tuo software non vale
nulla... nessuno lo copierà... (imho è meglio fare del software molto
craccato e/o copiato).
Ciao
-- 
Visita il sito comune del NG: 
http://www.it-lang-vb.net
Visit: 
http://www.hardwaretips.com

 wrote:
[cut]
Tempo fa rilasciai una release shareware di un mio programma, scritto
in C++, completa di tutte le funzioni ma con un timer che dopo x
minuti la faceva chiudere.
Qualche mese dopo trovai un crack, su un sito polacco, che applicato
al mio eseguibile toglieva il controllo sul timer (o non lo faceva
partire..boh).
Da allora opto per una tecnica diversa: oltre a lasciare l'esecuzione
a tempo evito di inserire nell'eseguibile che rilascio come shareware
alcuni funzioni. Non sono solo disabilitate ma proprio mancanti (con
la compilazione condizionale non devi stravolgere il codice a seconda
della versione che devi creare), in questo modo un eventuale crack
puo' sempre togliere la chiusura a tempo ma non puo' fisicamente
aggiungere codice che non c'e' :-)
Al cliente che acquista il programma mando l'exe completo insieme ad
un file di licenza (giusto per far comparire nel programma "registered
to..."), trattandosi di un exe scritto in C++ sono costretto a spedire
solo un centinaio di kb zippati.
Ciao
Stefano
Stefano "HappyMan" (Lago Maggiore - NO)
--
Personal Web 
http://www.sgr.info
Email happyman69 (at) 
libero.it

 solo un centinaio di kb zippati.
Ovviamente anche questo sistema ha i suoi limiti: non ci vuole niente perchč
il tuo prog venga comprato da un "pirata" che lo pubblica come versione
full.
Ciao
--
mathParser = "
http://www.neodatatype.net
"
sitoComune = "
http://www.it-lang-vb.net
"

NOn penso esista il sistema perfetto: per ogni possibile protezione, esiste
sempre la contromossa, sia essa la protezione di un programma, la
crittografia di una tv staellitare o un allarme per auto . Il problema,
secondo me, è altrove: quanto costa (sia in denaro che in tempo) trovare la
contropmossa? Ma soprattutto, quanto fa guadagnare? In parole povere spesso
il nocciolo della questione è la coinvenienza! Se un ladro d'auto trova due
macchine ugnuali da fregare, e una ha il bloccavolante (la prima cosa che mi
è venuta in mente), lui si frega l'altra; non perchè non sappia eludere
questo sistema, ma perchè è molto più conveniente l'alrtra strada!!!
Io perlomeno la vedo così....

 forse leggermente ot ... forse no ... e magari ampiamente
secondo me e senza pretesa di sciiiientificità!!!!!
se uno mastica di assembler (come tanti ragazzini nel mondo) siamo
inguaiati....
perchè se si modifica il codice facendo saltare pezzi di elaborazione o
addirittura sostituendo pezzi di codice...ci si può fare poco!
Secondo me...
la linee guida è
rendere difficile la vita al cracker....
A)disseminare (non molte ma in punti diversi) alcune routine di check
b) Usare algoritmi che calcolano checksum...se mi "aggieggia" l'exe alla
fine avrà una dimensione di byte diversa no?...non è detto cmq....alcuni
crack fanno un padding per riportare alla giusta dim di bytes....caso mai
anche con una criptatura blowfish (algoritmo anche in vb!)
c) Implemetare un "trojano" interno che chiede ogni tanto al tuo server la
convalida di alcune funzioni....pericoloso perchè il cracker potrebbe usarlo
per scopi suoi! (porta 445 di windows yuhuuuu! son Nimda...ti aspetto!!!!)
d) Cattivissima e per pochi utenti e al limite del legale!!!: Ogni 3/6/9/12
mesi fallo SCADERE e cancella proprio l'exe!!!!....e al cliente spedisci una
nuova versione ricompilata con le routine di check in posti
diversi...dovrebbe spiazzare il crack!

full.
Verissimo :-/
Devo dire che pero' il mio programma shareware non vende migliaia di
copie (purtroppo, altrimenti non farei il programmatore/sistemista di
professione ma starei a casa a gestire le vendite eheh) e quindi ogni
vendita le seguo "da vicino", anche perche' un primo filtro contro
falsi acquisti (es. con numeri di carte di credito false) me lo fa
regnow.


Non lo so ... ci stavo riflettendo su ... perchè effettivamente
sto finendo un ocx ... che - ricollegandomi ai post più
vecchi - sembra essere di moda ... e soprattuto utile anche
per me visto che in giro non si trova una pifero del genere.
Non parlo della luna, ma semplicemente di un controllo
che ti formatta la valuta, ma totalmente indipendente dal
fottuto registry di windows.
Ci puoi impostare quello che vuoi ... e tu scrivi e lui formatta.
Insomma niente di eclatante, l'ho detto, però visto che
non si trova nulla del genere, mi era passato per la mente
di venderlo anche su componentsource ... e allora li mi
si è iniziato a porre il problema di come proteggerlo.
Ho visto che alla fine un modo - non credo infallibile - sia
quello di fare un file di licenza che contiene uno o più checksum,
la stringa di licenza, criptata con un algoritmo ... dentro
alla stringa oltre al checksum una parola chiave.
e alla fine del checksum ... anche il checksum che mi indica
la grandezza del file ocx.
Bene ... metto l'ocx ... controllo la validità del mio file di licenza ...
in fase di esecuzione controllo il checksum del file ...
insomma per capirci ... n metodi tutti messi assieme e richiamati
in n punti diversi che dovrebbero complicare abbastanza la vita al
cracker.
Forse renderà più lenta l'esecuzione dell'ocx ... ma caxxo perchè
devo vedere il mio lavoro depredato?
E certo non puoi andare a dare una chiave hardware che costa ? 200,00
assieme ad un ocx che ne vale ... boooh ... ? 70,00????
Ciao
Andrea

 assieme ad un ocx che ne vale ... boooh ... ? 70,00????
no è vero!
per progetti un po più grandi...
considera una smartcard
la smartcard costa 2/3 euro
il lettore 50/70 ma lo usano anche per la firma digitale! ...prima o poi
sarà utile averlo!
Io comincio a considerare di far pagare la smartcard e di rendere invece
liberamente scaricabile il programma!
E' molto più palese la violazione in caso di pirataggio!
diciamo che un eventuale giudice è più sensibile alla violazione di una
smartcard che alla copia di un programma (che addirittura consentono per
"uso personale")
Saluti!



Ciao,
toglimi una curiosita': nella smart card puoi mettere
dell'"intelligenza" del programma ?
Mi spiego: usare la smartcard con una funzione del tipo 
if Smartscard then ok else nisba 
mi sembra facile da piratare disassemblando il codice, mentre chiamare
una funzione che ha bisogno di dati recuperati nella smartcard (senza
la quale la funzione non va) e' diverso...
Hai anche qualche link utile ?
Grazie


 wrote:
cut
http://www.microsoft.com/HWDEV/TECH/input/smartcard/default.asp
se non basta.....
smartcard con "intelligenza"?
devi legarti ad un processore (ATMEL PIC etc etc)
ad es.
http://www.atmel.com/atmel/products/select1.htm
Devi cercare in rete smartcard o funcard
un link per darti una idea
http://www.italelectronics.it/shop/index.html?target=dept_1.html&lang=it
saluti!
:-)

 poi basta eludere una if ... ??
Infatti. Basta avere il tempo e la motivazione giusta, e non esiste software
che possa essere impossibile da penetrare (al limite non conveniente, ma
quello č un altro discorso). Ma anche quelli che ci provano con l'hardware
(e non parlo di semplici palliativi come le chiavi, ma cose un po' piů
impegnate stile Palladium&Fritz) sanno benissimo che in fondo l'hardware non
č altro che software pietrificato (di chi č questa, Tanenbaum?), ed a quel
punto basta pietrificare un altro software e sostituirlo al precedente (un
po' come fanno i ragazzini con le console, ci ridurremo tutti a saldare chip
sulle schede madri da qua a qualche anno? ;-))
-- 
Ale
La RFD originale per it.comp.dotnet su
http://www.sen.it/stoa/articles.asp?id=10

 (al limite non conveniente, ma quello è un altro discorso).
il vero problema e' lo squilibrio :
Pensiamo a un programma buono con un bacino di utenza molto largo , ora di
solito 1 si occupa della protezione e 100 della sprotezione , ora e' logico
che il programmatore e' costretto a portare avanti le features del programma
e i metodi di protezione per costringere la gente ad acquistare / crakkare
un nuovo programma e cosi all'infinito, altra soluzione e' alla Mirc32 , "Se
volete pagatemi, non vi offro nessuna funzione in + , ma se volete darmi
qualche spiccio fatelo pure.."
bho , diciamo che il problema e' molto + ampio e pieno di variabili che ne
influenzano la formula per il "sw perfetto" , se faccio un prog e nessuno lo
crakka vuol dire che non serve a una mazza quello che ho fatto , se lo
crakkano ci perdo soldi ma intanto vuol dire che interessa a qualcuno ...
poi ci sono i programmi ad hoc , io rilascio programmi per le PA , con
nessuna protezione , se non un avviso a chiamarmi in caso di una nuova
istallazione , il bello e' questo : non puo' essere crakkato perche' lo usa
solo una ristretta e ben definita cerchia di utenti e il bello e' che se uno
se lo istalla sul pc di casa noi no ci perdiamo o guadagnamo ... bha !
-- 
<Gigio2K>
Sito Comune
Nokia -> I.T.H.N. -> 
http://www.ithn.it/
VB -> I.C.L.VB -> 
http://www.it-lang-vb.net/