[Python] Criptazione dei file sorgenti per evitare la manomissione

Daniele Varrazzo piro a develer.com
Sab 13 Nov 2010 01:04:58 CET


On Fri, 12 Nov 2010 20:55:15 +0100, lex mlist <lexmlist a gmail.com> wrote:
> Sera a tutti.
> 
> Pensavo di incorporare l'interprete di python in un mio progetto C,
visto
> che ho bisogno di permettere ad alcuni non-sviluppatori di sviluppare
> facilmente le loro idee.
> La scelta pende totalmente su di me, ero indeciso tra Python e LUA, ma
> sebbene LUA lo conosco solo di vista, mi sembra che python sia più
> completo,
> almeno in termini di package già pronti (se sbaglio vi prego di
> correggermi).

Sì. Forse Lua è più facile da embeddare (Python non è troppo difficile
comunque). Ma hai il vantaggio di una libreria molto più sostanziosa, come
hai visto.


> Avrei però la necessità di produrre per la release del programma un
> sistema
> di "protezione" per evitare che l'utente possa modificare i sorgenti di
> python e compromettere il flusso di esecuzione del programma. 

Basta che distribuisci solo i file .pyc invece dei .py: quelli sono
sufficienti ad eseguire il programma e vengono trovati dall'import. Questo
non è criptare, ma sembra quello che ti serve: è una protezione sufficiente
per evitare tampering da parte di chi non è *veramente* motivato e che
sappia leggere il bytecode.

PyInstaller fornisce anche supporto per creare un unico bundle che
contiene sia l'eseguibile che i .pyc delle librerie che servono (e i
.so/.dll). Probabilmente è facile modificarlo per fargli creare un bundle
con l'eseguibile che vuoi tu invece dell'interprete Python., magari lo fa
già...

Ciao!

-- 
Daniele Varrazzo - Develer S.r.l. 
http://www.develer.com


Maggiori informazioni sulla lista Python