ho fatto un programmino e vorrei evitare che una ditta che me lo compra per un pc lo desse anche a suoi amici
potrei fare un controllo con l'id di quel computer e farlo funzionare solo su quel pc
avete qualche suggerimento?
ho fatto un programmino e vorrei evitare che una ditta che me lo compra per un pc lo desse anche a suoi amici
potrei fare un controllo con l'id di quel computer e farlo funzionare solo su quel pc
avete qualche suggerimento?
www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso
in PHP ? :master:
hai codice criptato ? :master:
senno' aprono il programmino e cambiano l' id del pc![]()
c'è una funzione per criptare una sola stringa?
www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso
mmmhhh...penso che i due ultimi post fossero collegati...vero?
Me ne rendo conto adesso...
Però non ho capito...il programma è in PHP ???
Se sì allora è difficile che fornendo il codice quelli non possano non solo copiarlo ma anche modificarlo (come giustamente osservato da andr3a)...
I 'problemi' del PHP sono:
1) i programmi PHP sono open source per definizione (a meno che non si sia obbligati a interfacciarsi ad un server esterno)
2) non esistono funzioni in grado di analizzare in dettaglio l'HW dell'utente (vedi la soluzione WPA degli amici della Microsoft)
3) non esistono file system nativi o registri in cui 'nascondere' eventuali file/dati di validazione...cioè si può ma te li 'sgammano' subito.
4) Anche realizzando i punti 2) e 3) si ricade nell' 1)
Se il programma in questione fosse un eseguibile allora le cose cambierebbero.
sì è in php ma non è un eseguibile
sono anch'io per l'open source ma ho fatto un lavoro pe un cliente ma non vorrei che lo desse a tutti i suoi amici
quindi volevo proteggere il codice
il codice non è su internet ma su pc locale quindi i file sono accessibili a tutti
nessuno ha mai avuto l ostesso problema?
ho visto il programma indicato su questo forum ma è un po' complicato
avevo visto mesi fa ma non ricordo più dove un sito ch emetteva a disposizione la criptatura e spiegava alcune procedure, ma non so più dov'era
grazie
www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso
Ma figurati...capisco benissimo...mica ti sbatti aggratis...volevo solo dire che non essendo il PHP pseudo-compilato (come il byte-code di java)...programmi e sorgente sono la stessa cosa!!![supersaibal]Originariamente inviato da sandroacchiardi
sì è in php ma non è un eseguibile
sono anch'io per l'open source ma ho fatto un lavoro pe un cliente ma non vorrei che lo desse a tutti i suoi amici
quindi volevo proteggere il codice
grazie [/supersaibal]
Il punto è proprio questo: certo puoi usare dei programmi che rimuovano commenti e sostituiscano le variabili in modo da rendere il codice quasi illeggibile da occhio umano ma nulla vieta di copiare il programma su un'altro computer!!!
Come fare a dire che una copia è...una copia? Quindi non autorizzata? L'unica soluzione potrebbe essere quella di 'annegare' nel codice le info relative alle id della macchina (nome server, percorso script...insomma le variabili $_SERVER ).
Queste variabili potrebbero essere 'criptate' con la funzione md5 del PHP e inserite nel codice.
Esempio banale :
In locale (bliz è un virtual host) mi viene data questa firma
echo $_SERVER['SERVER_SIGNATURE'];
Apache/1.3.31 Server at bliz Port 80
Questa stringa potresti trasformarla nella versione criptata
str = md5($_SERVER['SERVER_SIGNATURE']);
echo md5($_SERVER['SERVER_SIGNATURE']);
89cc6c40f69ac79ecba338d6369277b1
Nota che il processo è irreversibile...
Ogni volta che il programma si avvia verifica se
md5($_SERVER['SERVER_SIGNATURE']) == "89cc6c40f69ac79ecba338d6369277b1";
Se non lo è esce e scrive frasi oscene in corpo <h1>!!!
I sottoproblemi allora diventano
1) come fare a inserire queste stringhe in modo semiautomatico (installazione online, programma di installazione che genera il php finale inserendo la stringa, file sterno da leggere,...???)
2) come nascondere almeno per gli utenti più frolloconi
la procedura di check
Forse la cosa più semplice è scrivere un programmino semplice semplice di installazione da lanciare al momento (ma da non lasciare!!!) che genera il file di testo contenente le md5.
Nel codice che scrivi con comodo a casa/ufficio devi scrivere la procedura che legge il file e verifica con un codice che pure te faticheresti a capire...magari con istruzioni inutili e fuorvianti.
Se vuoi essere un vero professionista potresti fare come la Microsoft che fa la stessa cosa...solo online...
![]()
[parentesi] anche il bytecode di Java si legge abbastanza tranquillamente ... come la maggior parte degli pseudo-compilati , tanto piu' se sono stringhe [/parentesi]
hai visto per niente il metodo consigliato dal Fabione ?
http://freephp.html.it/articoli/view...olo.asp?id=115
![]()
no sono riuscito a farlo funzionare
qualcuno può riassumermi le cose da fare
ciao
sandro
www.moscabianca.biz- riusciremo a competere con i colossi dell'annuncio? un sogno che arriva dal basso
Certo...comunque se apri il 'bytecode' di java è veramente difficile capire qualcosa....tipo[supersaibal]Originariamente inviato da andr3a
[parentesi] anche il bytecode di Java si legge abbastanza tranquillamente ... come la maggior parte degli pseudo-compilati , tanto piu' se sono stringhe [/parentesi]
hai visto per niente il metodo consigliato dal Fabione ?
http://freephp.html.it/articoli/view...olo.asp?id=115
[/supersaibal]
"una instanza della classe ak5 richiama un metodo della classe b71 la quale incrementa di 1 la variabile c18..." se poi traduci i nomi dei package in ungherese......leggere si legge ma poco più di un disassemblato. Le stringhe poi si leggono bene ovunque...
Quello che volevo dire è che senza opportuni accorgimenti (come quello da te citato o numerosi codificatori PHP più o meno costosi) il codice rimane tale e quale (commenti inclusi!!!).
Comunque rimane il problema di base...se anche nascondi il codice e metti una 'time bomb' nulla vieta di copiare il programma...poi quando viene fornita la nuova versione lo si ricopia nuovamente.
Come dicevo sono problemi quasi indipendenti
1) nascondere il codice
2) impedire la copia
Se il codice di sandro è complesso e i clienti non sono esperti programmatori ritengo che quest'ultimo problema sia più importante.
![]()
se oltre a time bomb o al posto di time bomb verifica il MAC Address del PC che sta' usando lo script, puo' copiare quanto vuole ma :
a - non ha i sorgenti modificabili
b - lo script non funzionera' su altri PC
d - dopo tot tempo comunque scade ( affiancando il time bomb )
$mac = &new NtMacAddress();
if( strToUpper( $mac->getMac( 'server' ) != PC_AUTH ) { exit(0); }
dove PC_AUTH e' la variabile definita prima contenente il mac address in upper case, menre la classe NtMacAddress e' questa
http://www.devpro.it/php4_id_57.html
![]()