View Full Version : Proteggere gli .exe
visodont
05-09-2003, 15:44
Come è possibile fare in modo che un programma, una volta inserito in un PC. non possa poi essere letto se inserito in un altro pc ?
Io uso un sistema, credo molto ingenuo. Non vi mettete a ridere ! Inseristo manualmente un determinato file con un certo nome in una directory che non fa parte del programma e se l' exe viene portato in un altro PC, non vedendo quel file, si blocca e fa altre cose a piacere !
E' un sistema per difendere il propio lavoro, So bene che un' esperto trova il trucco, ma gli utenti, per fortuna non sono tutti esperti.
Se mi potete suggerire un trucchetto meno ingenuo e più professionale vi ringrazio !
Ciao a tutti,
Visodont
Una cosa semplice da fare è usare un disco chiave di protezione.
Quando parte l'exe prima di partite va a controllare se è inserito il disco chiave nel floppy A, se c'è, allora l'exe parte se no non parte.
I dischi chiave li puoi preparare da solo, devi essere pratico di asm oppure c.
Devi creare una dll e una lib che viene richiamata dall'eseguibile dove nel progetto c'è la routine che và dal form load a leggere prima di tutto sul floppy se è inserito il disco chiave.
......... oppure puoi usare la chiave sulla porta parallela ma costa di più.
comunque io mi rifornisco a milano dalla CLOVER INFORMATICA, cerca su intenet, 10 dischetti ti costano circa 90 € e sono già pronti e non possono essere formattati ti verrà dato un programma o telo faì da solo, dove scrivere la password di protezione sia sul disco chiave che nella dll la lib e nel codice del tuo progetto che deve corrispondere.
oltretutto c'è la possibilità di criptare anche l'exe
ciao
visodont
06-09-2003, 16:21
Grazie dell' informazione !
Visodont
Un'altra tecnica molto semplice è il controllo sul n° di serie del disco (tra l'altro ho visto in un altro post che chiedevi appunto come si fa a ricavarlo in vb). Naturalmente devi sapere a priori il n° di serie del disco su cui verrà installato il programma. A questo punto gli unici modi per far partire correttamente il software sarebbero o utilizzare un drive virtuale che imposta il n° di serie uguale a quello codificato nel programma stesso, oppure modificare il codice contro la volontà dell'autore(ma qui andiamo nell'illegale:D )
Aloha!
Tutto quello che avete detto è molto buono :)
Purtroppo chi mastica l'assembly e l'exadecimale come il pane nn ci mette molto a cancellare dall'exe il file la riga che controlla il tutto e c'è la mette nel c..o a tutti :mad: :mad:
Diciamo pure che il 99.9% dei metodi di protezione sul software è aggirabile/eliminabile. Quello 0.1% non è che ne sia esente, solo che al momento non hanno ancora trovato il modo giusto per sproteggerlo...questione di tempo cmq. ;)
Aloha!
certo, ma sicuro che ogni metodo ha una sua contromossa :mad: :( :mad:
in genere si fa così:
il programma deve essere protetto e il codice di sblocco che tu dai
all'utente è calcolato sulla base di un'altro codice rappresentativo del computer utente che lui ti deve fornire(cioè lo calcola il programma e lo fornisce all'utente).
Il codice-numero è in genere un hash(cioè una riduzione a stringa o numero) di:
numero disco
nome computer
nome utente
versione sistema
caratteristiche dell'hardware presente etc.
Cosicchè il codice che gli fornirai funzionerà solo su quel computer
con una probabilita elevatissima.
Tutto questo puoi farlo trovando un componente(non ti so dire dove trovarlo),oppure fare tutto a mano.
Io uso un sistema, credo molto ingenuo. Non vi mettete a ridere ! Inseristo manualmente un determinato file con un certo nome in una directory che non fa parte del programma e se l' exe viene portato in un altro PC, non vedendo quel file, si blocca e fa altre cose a piacere !
Facilmente aggirabile.Basta vedere con un programma apposito a quali file accede il tuo programma(o per esempio chiave di registro).
...Mi correggo,vale solo per il registro. :)
visodont
07-09-2003, 14:51
bsummer scrive :
il software sarebbero o utilizzare un drive virtuale che imposta il n° di serie uguale a quello codificato nel programma stesso,
oppure modificare il codice contro la volontà dell'autore(ma qui andiamo nell'illegale )
Illegale ? beh mi pare che anche rubare un programma sia illegale e allora perchè non ci dici come si fa a modificare il codice contro la volontà dell'autore ?
Stiamo giocando a guardie e ladri no ?
Aspetto fiducioso !....... e ringrazio.
ciao,
Visodont
[B]
perchè non ci dici come si fa a modificare il codice contro la volontà dell'autore ?
Reverse Engineering. Parti dal programma compilato, attraverso programmi appositi risali al codice sorgente (assembler), indivudi tramite debug quali sono i punti in cui la protezione entra in gioco e modifichi le istruzioni incriminate. Il reverse Engineering di solito è espressamente vietato in tutti quei programmi coperti da copyright (basta dare un'occhiata alle condizioni di utilizzo).
Nei casi più banali è sufficiente cambiare una jc con una jnc o vicersa. Io non sono un esperto in cracking, ma so che esistono molti tool che vengono in contro a queste "esigenze". Tuttavia sono programmi molto complessi e per niente user-friendly, quindi alla portata di pochi.
Per quanto riguarda il rubare...ovvio che è illegale.
E per quanto riguarda guardia e ladri...no non stiamo giocando.
Ci sono ladri abili e ladri meno abili...ma non ci sono guardie perfette quindi è un gioco perso in partenza. Qualsiasi, e sottolineo qualsiasi, accorgimento adotterai per proteggere il tuo software ci sarà sempre qualcuno capace di aggirarlo. Questo non vuol dire che accada, dipende dall'utenza che necessita di tale programma: quindi fa bene i tuoi conti. Se i tuoi programmi vengono utilizzati in piccoli uffici della tua zona fa pure un metodo di protezione blando...Se il tuo programma è progettato ad hoc per una determinata azienda fai pure a meno di proteggerlo (io sovente faccio programmi per aziende medio-piccole: sono studiati su misura per le necessità dell'azienda e sono praticamente inservibili in altri luoghi). Se crei qualcosa di professionale, innovativo e che avrà sicuramente un ampio bacino di utenza allora spremiti pure le meningi, ma ciò ritarderà (e cmq non di tanto) solo il momento in cui te lo sproteggeranno.
Aloha!
visodont
08-09-2003, 19:39
Grazie ancora,
il mio programma è dedicato ai dentisti e non credo abbiano voglia e tempo per fare della retro-ingenerizzazione.
saluti,
Visodont
maxithron
08-09-2003, 21:06
Beh per risolvere tutti i problemi in un sol colpo.....:
Scrivete programmi opensource!!!!:D :D :D :D :D :D :D
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.