一度使用した後、その特定のプログラムがどのコンピューターでも使用できなくなるようなPythonプログラムを構築する方法はありますか? もしそうなら、どのように?
作業を簡単にするために、プログラムを .exe にコンパイルすることに注意してください。
一度使用した後、その特定のプログラムがどのコンピューターでも使用できなくなるようなPythonプログラムを構築する方法はありますか? もしそうなら、どのように?
作業を簡単にするために、プログラムを .exe にコンパイルすることに注意してください。
更新: プログラムを実行したい場合は、そのコピーのみを無効にしますか? 簡単な答えは、プログラム自体を削除させることです。ただし、コピー防止の根本的な問題に遭遇します。ユーザーはプログラムのコピーを作成してそれらを個別に実行するか、プログラムを実行する前にコンピューターをバックアップしてからバックアップを復元して、試行する可能性のあるトリックを回避することさえできます。隠しファイルまたはレジストリ設定。最終的にできることは、プログラムを 2 回実行することを困難にすることだけであり、不可能ではありません。
実際のコードをサーバー上で実行し、スクリプトからサーバーにプログラムの実行を要求するリクエストを送信するだけです。サーバーは、最初のリクエスト以降はすべて無視できます。
中央サーバーなしですか?方法はありません。自分のコンピューターでプログラムを実行している 1 人のユーザーは、プログラムが何らかの方法で通信しない限り、他のすべてのコンピューターでそのプログラムを無効にすることはできません。それでも、ロジックがスクリプト内にある場合は、単純にチェックを無効にすることはそれほど難しくありません。
あまり。スクリプトを仮想マシンにロードし、マシンの状態を保存して、スクリプトを実行するたびに仮想マシンをリセットできます。
さらに、Py2exe、cx_Freeze、PyInstaller などによって生成された実行可能ファイルは、元のソース コードに簡単に逆アセンブルできるため、誰かが仮想マシンまで行って制限を破る必要さえありません。
それを Web アプリケーションにして、ユーザーにアクセス トークンを購入してもらいます。ソフトウェアはサーバー上で完全に実行されるため、逆アセンブルする必要はありません。
セキュリティをあまり気にしない場合は、レジストリにキーを追加するか、スクリプトを実行する前にチェックされる AppData にファイルを作成してください。
一意のキーを持つ URL を持つダウンローダのみを配布します。許可されたキーからのダウンロードのみを許可するようにサーバーをセットアップし (明らかに、キーを推測しにくくします)、ダウンロードが成功したときにキーを無効にします。
ダウンロードを終了した直後に落雷が発生したなどの理由で、もう一度試してみる必要があると主張する顧客に 24 時間 365 日対応する対応スタッフを雇って設定します。邪悪なカルマ ポイントについては、MPAA と協力して、そのような顧客に対してパラリーガル アタック モンキーの蓄えを解き放ちます。
まあ、私は python を知りませんが、2 つのプログラムが必要なようです。1 つはランチャーで、もう 1 つは一度だけ動作させたいメイン プログラムであり、ランチャーによってロードされ、ランチャー自体によって実行後に削除/変形されるため、二度と動作しません。私はexeとdllのペアでそれを行うので、Windowsプログラマーとして考えています...私の答えはpythonには当てはまらないかもしれません。
Python には crontab モジュールがありましたhttps://pypi.python.org/pypi/python-crontab/
おそらく、Python スクリプトの最後で、次のような時間を取得できます。
from datetime import datetime
str(datetime.now())
次に、crontabを作成して、近い将来に別のスクリプトを実行し、pythonファイルを上書きしてrmします。または、Windows では、Python で同じことを行うバッチ ファイルを作成しますが、最初はしばらくスリープし、Python からバッチ ファイルを実行すると、すぐに .py の最後になる可能性があります。