[PIPython] pyo e pyc files

Gianni Lenoci gianiaz76
Ven 19 Nov 2004 15:16:41 CET


Alex Martelli wrote:

>On Wednesday 04 February 2004 08:44 am, Giovanni B. Lenoci wrote:
>   ...
>  
>
>>Non mi chiedevo tanto se fosse lecito, ma quanto un programmatore
>>potesse stare tranquillo distribuendo il bytecode del proprio programma.
>>    
>>
>
>Un programmatore puo` stare _estremamente_ tranquillo: basta praticare la 
>meditazione trascendentale, o, per chi ha poca pazienza, usare il Valium, e 
>la tranquillita` e` garantita.  "Se non puoi farci niente, che ti agiti a 
>fa'"...?-)
>
>  
>
>>Mi hai comunque risposto in seguito. Credo che valga con tutti i
>>linguaggi di programmazione; se trovi un programmatore disonesto che
>>vuole utilizzare il tuo codice in pochi passaggi partendo dal bytecode
>>puņ ottenere il sorgente.
>>    
>>
>
>Esatto (non necessariamente lo stesso sorgente da cui quel bytecode e` stato 
>generato, ma comunque uno grosso modo equivalente).  In effetti questo vale 
>per qualsiasi linguaggio di partenza e di arrivo.
>
>  
>
>>Naturale che va contro la legge, ma questa č un'altra storia.
>>    
>>
>
>Le protezioni di tipo legale e contrattuale sono l'unica storia.
>
>
>  
>
>>Esiste qualche modo per criptare il bytecode? Ad esempio che funziona
>>solo passando una determinata chiave?
>>Forse dico una castroneria, non lapidatemi :P
>>    
>>
>
>Se distribuisci codice che puo` essere eseguito sulle macchine dei clienti, 
>chiaramente stai distribuendo anche tutto quel che occorre allo scopo di 
>decrittarlo, se no non potrebbe mai venire eseguito.  Solo questione per chi 
>fosse interessato al tuo codice di scoprire come lo decritti, e c'e` chi ci 
>si diverte e lo fa a puro scopo ludico anche per codice di cui non gli cale 
>ne` poco ne` punto, cosi` come un altro risolve cruciverba o rebus.  Basta 
>guardare sui siti di "warez" per vedere quanto resistono le "protezioni" 
>anche dei videogiochi piu` "corazzati", pieni di trucchi linguaggio-macchina 
>ecc ecc.
>
>L'unica vera protezione e` non distribuire TUTTO il codice che serve per 
>rendere la tua applicazione pienamente funzionale.  Nel mondo dei giochi 
>questo "santo graal" e` stato raggiunto con i giochi che prevedono 
>interazioni in internet: la parte "server" e` pienamente sotto il controllo 
>degli sviluppatori e nessuno (che non cracchi il server, ma quelli E` 
>possibile corazzarli davveror) potra` mai vedere o modificare quel codice. 
>
>Nel mondo business la prospettiva emergente sono i web services.  Ma con un 
>minimo di ingegno puoi certo pensare a _qualche_ funzionalita` che richiede 
>un accesso alla rete, specificamente ad un server sotto il tuo controllo, e 
>quindi ti permette di tenere sotto pieno controllo pirateria et simila.  Un 
>esempio delizioso che ho appena scoperto: il gratuito "calculator" dei 
>sistemi Mac ha fra le sue funzioni la conversione di valute.  Ovviamente per 
>farla bene deve potere aggiornare le sue tabelle dei tassi di cambio, e 
>questo lo fa connettendosi all'opportuno server, naturalmente.  Ora e` chiaro 
>che ad Apple poco interessa se qualcuno pirateggia o hackera quel particolare 
>programmillo che tanto lei distribuisce gratis come parte di un sistema 
>ricchissimo.  Ma il punto e` che grazie a funzionalita` perfettamente 
>legittime e desiderabili ormai in pratica QUALSIASI programma ha un'ottima 
>scusa per connettersi in rete ogni tanto, e in queste connessioni sta la tua 
>opportunita` di proteggere efficacemente il valore aggiunto dei tuo 
>programma.  L'hacker puo` studiare il codice che distribuisci, e rimuovere le 
>chiamate di rete, ma se lo fa perde funzionalita` importanti (tipo 
>l'aggiornamento automatico dei tassi di cambio, nell'esempio).  Metti sui 
>server le parti piu` importanti, idealmente indispensabili, e tutto il 
>problema si sposta sulla sicurezza dei tuoi server (hint: OpenBSD).
>
>
>Alex
>
>
>  
>
La tua risposta mi era sfuggita, grazie mille, sempre preciso ed 
esaustivo nelle spiegazioni! :-)




More information about the Python mailing list