2009-02-23 54 views
35

Pythonコードを難読化するのに役立つツールがありますか?Pythonコード難読化

+99

Perlに変換しますか?ブーム、ブーム、聞いてくれてありがとう、私は一週間ここにいる:-) – paxdiablo

+1

重複:http://stackoverflow.com/questions/261638/how-do-i-protect-python-code –

+0

さらに一般的な議論:http ://stackoverflow.com/questions/164137/how-do-i-deploy-a-python-desktop-application – tzot

答えて

5

で、あなたはバイトコンパイルする.pycファイルの代わりの.pyソースファイルを出荷することができます。これにより、ある程度の難読化レベルが得られます。 pyobfuscate READMEが示唆しているように、これには限界があります。しかし、あなたは2つのアプローチを組み合わせることができます。

15

問題のスペースは指定されていません。これはコマンドラインアプリ用ですか?このコードはライブラリとして使用することになっていますか?

その他の2つの回答に加えて、コードをバイナリに埋め込むことができます。起動すると、コードをデコードして文字列を評価します。これは、共有ライブラリの拡張機能でも機能します。あなたはバイトコードでそれを行うこともできますが、Py_EvalCodeを呼び出すのと同じくらい単純ではありません。

py2exeまたはfreezeは、コードを実行可能ファイルに変換する他のソリューションです。それは単にバイナリにコードを含み、重大なobsfucationを何もしませんが、.pyファイルを開くよりもまだ難しいです。

Pythonに似ているCythonでコードを書くことができ、Pythonの拡張ファイルをCで書いて.soとして使用できます。これはリバースエンジニアリングの最も難しいものですが、依然として高度な言語を提供しています。

すべての解決策と同様、これらはすべてハッキング可能です。どのようにあなたがそれが欲しいのですか?

+6

+1に転送されました。最近Cythonが使用されていますが、これはかなりうまくいきましたそれは何ですか。 – Dan

+0

簡単な 'decompyle'が可能であるのをやめたいのであれば、どうすれば簡単に使えるのですか? – Basj

4

Pythonの標準ライブラリには、compileall.pyが含まれています。これをディレクトリで実行すると、すべてのソースファイルの.pycファイルが生成されます。 .pycファイルには、バイトコードとドキュメントストリングのみが含まれ、すべてのコメントが削除されます。このディレクトリをコピーしてから、rm -rf $(find . -name .py)のようなものを実行して、元のソースファイルを削除することができます。

2

最良の方法は、実験的なPython-to-C++コンパイラShed Skinを使用してコンパイルすることです。

+0

Pypyもありますが、文書化されておらず、受け入れるコードが非常に限られています。 – Antimony

+0

@Antimony:あなたはRPythonについて話していますか?PyPy(RPythonを使用)は、Pythonを完全に実装したものであり、受け入れるコードに制限はありません。 –

+0

@Johnはい、私はRPythonについて話しています。これはPyPyプロジェクトの一部です。 – Antimony

6

私は実際にPythonをC++に変換し、静的にリンクされたバイナリファイルを作成する非常に素晴らしいプロジェクトを発見しました。

このうち

チェック:http://www.nuitka.net/

0

それは難読化を行いませんが、このPython recipeがコメントを出しストリッピングを含むPythonコードのサイズを最小化するために非常に適しています。