Domanda

Se esiste davvero un modo "migliore", quale è il modo migliore per spedire un'app Python e garantire che le persone non possano (facilmente) decodificare i tuoi algoritmi / sicurezza / lavoro in generale?

Se non esiste un modo "migliore", quali sono le diverse opzioni disponibili?

Sfondo: Adoro programmare in Python e mi piacerebbe rilasciare più app con esso. Una cosa che mi chiedo è la possibilità che le persone eludano qualsiasi codice di licenza che ho inserito o che siano in grado di fregare tutta la mia base di origine. Ho sentito parlare di Py2Exe e di applicazioni simili, ma sono curioso di sapere se ci sono modi "preferiti" per farlo, o se questo problema è solo un fatto della vita.

È stato utile?

Soluzione

La sicurezza attraverso l'oscurità mai funziona. Se devi utilizzare una licenza proprietaria, applicala attraverso la legge, non i tentativi di offuscamento a metà.

Se sei preoccupato per l'apprendimento dell'algoritmo di sicurezza (ad es. crittografia), lo stesso vale. Algoritmi di sicurezza reali, utili (come AES) sono sicuri anche se l'algoritmo è completamente noto.

Altri suggerimenti

Anche se usi un linguaggio compilato come C # o Java, le persone possono eseguire il reverse engineering se sono motivate e tecnicamente competenti. L'offuscamento non è una protezione affidabile contro questo.

È possibile aggiungere il divieto di reverse engineering al contratto di licenza con l'utente finale per il proprio software. La maggior parte delle aziende proprietarie lo fa. Ma ciò non impedisce la violazione, ti dà solo ricorso legale.

La migliore soluzione è quella di offrire prodotti e servizi in cui l'accesso dell'utente alla lettura del codice non pregiudichi la tua capacità di vendere il tuo prodotto o servizio. Basa la tua attività sul servizio fornito o sull'iscrizione agli aggiornamenti periodici ai dati, piuttosto che al codice stesso.

Esempio: Slashdot rende effettivamente disponibile il proprio codice per il proprio sito Web. Ciò danneggia la loro capacità di gestire il loro sito Web? No.

Un altro rimedio è impostare il prezzo in modo tale che lo sforzo di piratare il codice sia più costoso rispetto al semplice acquisto di licenze legittime per utilizzare il prodotto. Joel Spolsky ha formulato una raccomandazione in tal senso nei suoi articoli e podcast.

Spedendo una app desktop mac commerciale in Python, facciamo esattamente come descritto nelle altre risposte; proteggiti dalla legge con un EULA decente, non offuscando.

Non abbiamo mai avuto problemi con il reverse engineering del nostro codice. E se lo facciamo, sono fiducioso di poter intraprendere un'azione legale. Quindi sì, è un dato di fatto. Ma uno con cui non è troppo difficile convivere. Basta avere un avvocato decente che scrive un EULA decente.

La parola che stai cercando è offuscata. Un rapido google rivela:

http://www.lysator.liu.se/~astrand/ progetti / pyobfuscate /

ma

a) Se la violazione del copyright diventa un problema, la legge è dalla tua parte (a condizione che tu includa gli avvisi di copyright appropriati in tutti i file).

b) È anche possibile realizzare un profitto su applicazioni open source se sei intelligente.

c) Se vuoi che la tua proprietà intellettuale sia veramente sicura, l'unica risposta è non lasciare che nessuno l'abbia in primo luogo: scrivi la tua applicazione come app web (ti consiglio di usare django) e solo il tuo web il provider di hosting ha accesso al tuo codice.

py2exe

Su Windows py2exe è un modo per spedire il codice agli utenti finali, py2exe raggruppa l'interprete python, le dll necessarie e il codice compilato in bytecode python.

Ecco le istruzioni per il codice byte di Python per avere un'idea di come sia:

http://www.python.org/doc/2.5 .2 / lib / bytecodes.html

Oppure puoi usare dis per disassemblare alcuni file pyc / pyo.

Quindi, usare py2exe è simile alla distribuzione di file compilati di Python (pyc / pyo).

Compilatore C ++ di Shedskin

Il compilatore Shedskin compila un sottoinsieme di Python in C ++ che puoi compilare in codice nativo usando qualsiasi compilatore.

PyPy

Non so troppo di PyPy. Secondo i loro documenti, Pypy è in grado di generare il codice C.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top