Question

S'il existe vraiment un "meilleur" moyen, quel est la meilleure façon de fournir une application Python et de s'assurer que les utilisateurs ne peuvent pas (facilement) procéder à un reverse engineering de vos algorithmes / sécurité / travail en général?

S'il n'y a pas de "meilleur" moyen, quelles sont les différentes options disponibles?

Contexte: J'adore coder en Python et j'aimerais publier plus d'applications avec. Une chose sur laquelle je m'interroge est la possibilité que des personnes contournent le code de licence que je mets ou puissent tout simplement arnaquer toute leur base de sources. J'ai entendu parler de Py2Exe et d'applications similaires, mais je suis curieux de savoir s'il existe des moyens "préférés" de le faire ou si ce problème n'est qu'un fait de la vie.

Était-ce utile?

La solution

La sécurité par l'obscurité Jamais fonctionne. Si vous devez utiliser une licence exclusive, appliquez-la conformément à la loi et non aux tentatives d'obscurcissement à moitié cuites.

Si vous craignez qu’ils apprennent votre algorithme de sécurité (cryptographie, par exemple), il en va de même. Les algorithmes de sécurité réels et utiles (comme AES) sont sécurisés même s’ils sont parfaitement connus.

Autres conseils

Même si vous utilisez un langage compilé tel que C # ou Java, les utilisateurs peuvent effectuer une ingénierie inverse s'ils sont motivés et techniquement compétents. L’obscurcissement n’est pas une protection fiable contre cela.

Vous pouvez ajouter une interdiction de reverse engineering à votre contrat de licence utilisateur final pour votre logiciel. La plupart des sociétés propriétaires le font. Mais cela n’empêche pas la violation, cela vous donne seulement un recours légal.

La meilleure meilleure solution consiste à proposer des produits et services dans lesquels l’accès de l’utilisateur à la lecture de votre code ne nuit pas à votre capacité à vendre votre produit ou service. Basez votre entreprise sur les services fournis ou sur l’abonnement à des mises à jour périodiques des données plutôt que sur le code lui-même.

Exemple: Slashdot rend le code de son site Web disponible. Est-ce que cela nuit à leur capacité de gérer leur site Web? Non.

Un autre recours consiste à définir votre prix de telle sorte que le piratage de votre code coûte plus cher que le simple achat de licences légitimes pour utiliser votre produit. Joel Spolsky a recommandé cet effet dans ses articles et podcasts.

En envoyant une application de bureau pour Mac commerciale en Python, nous procédons exactement comme décrit dans les autres réponses; protégez-vous par la loi avec un CLUF décent, et non par obscurcissement.

Nous n’avons jamais eu de problèmes avec les personnes qui procédaient à l’ingénierie inverse de notre code. Et si nous le faisons, je suis convaincu que nous pouvons engager des poursuites judiciaires. Alors oui, c'est un fait de la vie. Mais il n’est pas trop difficile de vivre avec. Obtenez juste un avocat décent qui écrit un CLUF décent.

Le mot que vous recherchez est obscurcissant. Un rapide google révèle:

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

mais:

a) Si la violation du droit d'auteur devient un problème, la loi vous appartient (dans la mesure où vous incluez les notices de copyright appropriées dans tous les fichiers).

b) Il est également possible de réaliser des bénéfices sur les applications open source si vous êtes malin.

c) Si vous souhaitez que votre propriété intellectuelle soit réellement sécurisée, la seule solution consiste à ne laisser personne la posséder. Commencez par écrire votre application en tant qu'application Web (je vous recommande d'utiliser django) et uniquement votre site Web. L'hébergeur a accès à votre code.

py2exe

Sur Windows, py2exe est un moyen d’expédier du code aux utilisateurs finaux. Py2exe regroupe l’interpréteur python, les dll nécessaires et votre code compilé en bytecode python.

Voici les instructions du bytecode en python pour obtenir un aperçu de ce à quoi il ressemble:

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

Vous pouvez également utiliser dis pour désassembler certains fichiers pyc / pyo.

Utiliser py2exe revient donc à distribuer des fichiers python compilés (pyc / pyo).

Compilateur Shedskin C ++

Le compilateur Shedskin compile un sous-ensemble de python en C ++ que vous pouvez compiler en code natif à l'aide de n'importe quel compilateur.

pypy

Je ne connais pas trop PyPy. Selon leurs documents, Pypy est capable de générer du code C.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top