5

Pythonのソースコードを保護したいのですが、絶対的な保護は不可能ですが、それでも、実行を困難にする、または非常に時間がかかるようにするための手段が必要です。が欲しいです

1)すべてのドキュメント、コメントを自動的に削除し、

2)モジュール内の変数と関数の名前を体系的に変更し(難読化?)、変数と関数の内部名を発音できない間、外部インターフェイス(意味のある名前)を維持できるようにします。

おそらく、1)と2)を冗長にする最良の解決策は、のとおりです。

3)Pythonモジュールを.soライブラリにコンパイルする簡単な方法はありますか?明確なインターフェイスを使用し、他のPythonモジュールで使用できますか?ソースコードがC/C ++ではなくpython自体であることを除けば、distutilsを使用してCおよびC++拡張機能を構築するのと似ています。アイデアは、すべての「秘密のコード」をモジュールに編成し、それらをコンパイルしてから、秘密とは見なされない残りのPythonコードにインポートすることです。

繰り返しになりますが、すべてをリバースエンジニアリングできることを認識しています。実用的な言葉で言えば、平均的な開発者のほとんどはコードをリバースエンジニアリングできず、倫理的/法的/タイミング上の理由でコードをリバースエンジニアリングできます。彼らが本当にこれに取り組みたいのなら、よく考えてください。

4

1 に答える 1

6

mgilson がコメントで述べたように、Cython がおそらくここでの最善の策です。一般的に言えば、それを使用して、純粋な Python ソース コードをコンパイル済みの拡張モジュールに変換できます。Cython の主な目的はパフォーマンスの向上ですが、ソース コードの保護のために使用することを妨げるものはありません。それが出力する拡張モジュールは特別な方法で制限されていないため、以前に Python 内から実行できたすべてのことは、Cython によって生成された拡張モジュールから実行できるはずです。Cython には、回避する必要がある可能性のあるサポートされている機能に関していくつかの既知の制限がありますが、全体として、Cython は目的を果たすのに適しているように見えます。

于 2012-07-11T18:01:41.207 に答える