8

本当に「最善の」方法がある場合 Python アプリを出荷し、人々がアルゴリズム/セキュリティ/作業全般を (簡単に) リバース エンジニアリングできないようにする最善の方法は何ですか?

「最善の」方法がない場合、利用可能なさまざまなオプションは何ですか?

背景: 私は Python でのコーディングが大好きで、Python を使ったアプリをもっとリリースしたいと思っています。私が疑問に思っていることの 1 つは、私が入れたライセンス コードを誰かが回避したり、私のソース ベース全体を盗んだりする可能性があるということです。私は Py2Exe や類似のアプリケーションについて聞いたことがありますが、それを行うための「好ましい」方法があるかどうか、またはこの問題が単なる現実であるかどうかに興味があります。

4

5 に答える 5

13

あいまいさによるセキュリティは決して機能しません。プロプライエタリ ライセンスを使用する必要がある場合は、中途半端な難読化の試みではなく、法律に従って強制してください。

彼らがあなたのセキュリティ (暗号化など) アルゴリズムを学習することを心配しているなら、同じことが当てはまります。真の有用なセキュリティ アルゴリズム (AES など) は、アルゴリズムが完全に知られている場合でも安全です。

于 2009-01-24T00:56:39.190 に答える
8

C# や Java などのコンパイル済み言語を使用する場合でも、意欲と技術力があれば、人々はリバース エンジニアリングを実行できます。難読化は、これに対する信頼できる保護ではありません。

ソフトウェアのエンド ユーザー ライセンス契約に、リバース エンジニアリングの禁止を追加できます。ほとんどの専有企業はこれを行っています。しかし、それは違反を防ぐものではなく、法的手段を提供するだけです。

最善の解決策は、ユーザーがアクセスしてコードを読み取っても、製品やサービスの販売能力が損なわれないような製品やサービスを提供することです。コード自体ではなく、提供されるサービス、またはデータの定期的な更新へのサブスクリプションに基づいてビジネスを行います。

例: Slashdot は、実際に Web サイトのコードを公開しています。これは彼らのウェブサイトを運営する能力に害を及ぼしますか? いいえ。

もう 1 つの解決策は、製品を使用するための正当なライセンスを単に購入するよりも、コードを海賊版にする努力の方が高くつくように価格を設定することです。Joel Spolsky は、彼の記事やポッドキャストで、この影響について推奨しています。

于 2009-01-24T03:02:04.960 に答える
5

Python で商用の Mac デスクトップ アプリを出荷する場合、他の回答で説明されているとおりに行います。難読化ではなく、適切な EULA を使用して法律で保護してください。

私たちのコードをリバース エンジニアリングする人に問題が発生したことは一度もありません。そうすれば、法的措置を講じることができると確信しています。そうです、それは人生の事実です。しかし、一緒に暮らすのはそれほど難しくありません。まともなEULAを書いてくれるまともな弁護士を雇ってください.

于 2009-01-24T14:43:27.883 に答える
3

あなたが探している単語は難読化されています。簡単なグーグルは明らかにします:

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

しかし:

a) 著作権侵害が問題になる場合、法律はあなたの味方です (すべてのファイルに適切な著作権表示を含める限り)。

b) 頭が良ければ、オープンソース アプリケーションで利益を上げることも可能です。

c) 知的財産を真に安全なものにしたい場合、唯一の答えは、そもそも誰にも知られないようにすることです: アプリケーションを Web アプリとして作成し (django を使用することをお勧めします)、Web ホスティング プロバイダーだけがそれを持っています。コードへのアクセス。

于 2009-01-24T01:12:13.510 に答える
1

py2exe

Windows では、py2exe はコードをエンドユーザーに配布する 1 つの方法です。py2exe は、python インタープリター、必要な dll、および python バイトコードにコンパイルされたコードをバンドルします。

これがどのように見えるかについての手がかりを得るためのPythonバイトコードの指示は次のとおりです。

http://www.python.org/doc/2.5.2/lib/bytecodes.html

または、 disを使用して pyc/pyo ファイルを逆アセンブルすることもできます。

したがって、py2exe を使用することは、コンパイル済みの python (pyc/pyo) ファイルを配布することに似ています。

シェドスキン C++ コンパイラ

Shedskin コンパイラは、Python のサブセットを C++ にコンパイルし、任意のコンパイラを使用してネイティブ コードにコンパイルできます。

ピーピー

私はPyPyについてあまり知りません。彼らのドキュメントによると、Pypy は C コードを生成できます。

于 2009-02-10T21:35:29.430 に答える