0

一度使用した後、その特定のプログラムがどのコンピューターでも使用できなくなるようなPythonプログラムを構築する方法はありますか? もしそうなら、どのように?

作業を簡単にするために、プログラムを .exe にコンパイルすることに注意してください。

4

5 に答える 5

2

更新: プログラムを実行したい場合は、そのコピーのみを無効にしますか? 簡単な答えは、プログラム自体を削除させることです。ただし、コピー防止の根本的な問題に遭遇します。ユーザーはプログラムのコピーを作成してそれらを個別に実行するか、プログラムを実行する前にコンピューターをバックアップしてからバックアップを復元して、試行する可能性のあるトリックを回避することさえできます。隠しファイルまたはレジストリ設定。最終的にできることは、プログラムを 2 回実行することを困難にすることだけであり、不可能ではありません。


実際のコードをサーバー上で実行し、スクリプトからサーバーにプログラムの実行を要求するリクエストを送信するだけです。サーバーは、最初のリクエスト以降はすべて無視できます。

中央サーバーなしですか?方法はありません。自分のコンピューターでプログラムを実行している 1 人のユーザーは、プログラムが何らかの方法で通信しない限り、他のすべてのコンピューターでそのプログラムを無効にすることはできません。それでも、ロジックがスクリプト内にある場合は、単純にチェックを無効にすることはそれほど難しくありません。

于 2013-07-22T03:20:35.097 に答える
2

あまり。スクリプトを仮想マシンにロードし、マシンの状態を保存して、スクリプトを実行するたびに仮想マシンをリセットできます。

さらに、Py2exe、cx_Freeze、PyInstaller などによって生成された実行可能ファイルは、元のソース コードに簡単に逆アセンブルできるため、誰かが仮想マシンまで行って制限を破る必要さえありません。

それを Web アプリケーションにして、ユーザーにアクセス トークンを購入してもらいます。ソフトウェアはサーバー上で完全に実行されるため、逆アセンブルする必要はありません。


セキュリティをあまり気にしない場合は、レジストリにキーを追加するか、スクリプトを実行する前にチェックされる AppData にファイルを作成してください。

于 2013-07-22T03:27:15.133 に答える
1

一意のキーを持つ URL を持つダウンローダのみを配布します。許可されたキーからのダウンロードのみを許可するようにサーバーをセットアップし (明らかに、キーを推測しにくくします)、ダウンロードが成功したときにキーを無効にします。

ダウンロードを終了した直後に落雷が発生したなどの理由で、もう一度試してみる必要があると主張する顧客に 24 時間 365 日対応する対応スタッフを雇って設定します。邪悪なカルマ ポイントについては、MPAA と協力して、そのような顧客に対してパラリーガル アタック モンキーの蓄えを解き放ちます。

于 2013-07-22T09:36:30.357 に答える
0

まあ、私は python を知りませんが、2 つのプログラムが必要なようです。1 つはランチャーで、もう 1 つは一度だけ動作させたいメイン プログラムであり、ランチャーによってロードされ、ランチャー自体によって実行後に​​削除/変形されるため、二度と動作しません。私はexeとdllのペアでそれを行うので、Windowsプログラマーとして考えています...私の答えはpythonには当てはまらないかもしれません。

于 2013-07-22T03:25:52.557 に答える
0

Python には crontab モジュールがありましたhttps://pypi.python.org/pypi/python-crontab/

おそらく、Python スクリプトの最後で、次のような時間を取得できます。

from datetime import datetime
str(datetime.now())

次に、crontabを作成して、近い将来に別のスクリプトを実行し、pythonファイルを上書きしてrmします。または、Windows では、Python で同じことを行うバッチ ファイルを作成しますが、最初はしばらくスリープし、Python からバッチ ファイルを実行すると、すぐに .py の最後になる可能性があります。

于 2013-07-22T03:33:47.943 に答える