[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