シェアウェア デスクトップ アプリケーションを開発しています。試用/アクティベーションコードを実装する必要があるところまで来ました。このようなものにどのようにアプローチしますか?私には独自のアイデアがありますが、stackoverflow コミュニティの意見を知りたいです。
C++/Qt で開発しています。対象のプラットフォームは Windows/Mac/Linux です。
アドバイスありがとうございます!
シェアウェア デスクトップ アプリケーションを開発しています。試用/アクティベーションコードを実装する必要があるところまで来ました。このようなものにどのようにアプローチしますか?私には独自のアイデアがありますが、stackoverflow コミュニティの意見を知りたいです。
C++/Qt で開発しています。対象のプラットフォームは Windows/Mac/Linux です。
アドバイスありがとうございます!
何を保護し、何を保護しないか:
人々はいつでもあなたの試用期間を回避する方法を見つけるだろうということを心に留めておいてください. そのため、試用期間を回避する必要があることを相手に迷惑をかけたいと考えていますが、試用期間を回避することが不可能であるかどうかは問題ではありません。
簡単な仕組みさえあれば、試用期間を回避しようとするのは大変だと思う人がほとんどでしょう。たとえば、いつでも filemon/regmon を使用して、ソフトウェアのインストール時にどのファイルとレジストリ エントリが変更されるかを確認できます。
そうは言っても、時間を無駄にしないシンプルなメカニズムが最適です。
ここにいくつかのアイデアがあります:
トライアルの延長:
お客様が試用期間の延長をリクエストすると、プログラム「TrialExtend.exe」と試用期間の延長コードを含む自動メールが送信されます。このプログラムは、トライアル延長コードを使用してサーバーに接続し、検証を行います。コードが検証されると、試用期間がリセットされます。
何をするにしても、システムの日付に注意してください。本の中で最も古いトリックは、将来のある時点でアプリケーションをインストールし、最初の実行時にアプリケーションがばかげた日付を保存したら、実際の日付に戻ることです。キーをオンライン リポジトリと同期してみてはいかがでしょうか。
ブライアンの答えは素晴らしいですが、何か追加したいと思います。
Linuxユーザーは通常、ソフトウェアにお金を払うことに慣れておらず、オープンソースの問題については技術に精通しており、場合によっては「宗教的」でさえある傾向があります。
そのため、シンプルに保つことを強くお勧めします。ソフトウェアを盗むのと同じくらい簡単にソフトウェアを購入できるようにすることは、実際には小さな障壁にすぎません。
完全に死ぬのではなく、試用期間後に特定の機能(保存など)を無効にするか無効にすることをお勧めします。単なる観察ですが、機能ベースの制限はLinuxの世界ではより一般的であるように思われます。
余談ですが、Linuxバージョンを「ファーストクラス」バージョンにする-まともなインストーラーなどが役立ちます。
あなたが比較的小さい場合、またはあなたのプログラムが比較的ニッチである場合、誰もがそれをクラックすることをわざわざする可能性はかなり低いので、時間が経過したら、簡単な微笑で良い製品を作ることに集中してください。
おそらく本当の問題は、期間限定の試用版です。私が働いている会社は多くの Active Directory 作業を行っており、通常、試用版のソフトウェアを少数のユーザーに制限しています。何らかの方法で機能を制限する方が、実装が簡単で、ユーザーがコンピューターの日付を変更するだけで失敗しない場合があると思います。
機能を厳密に制限しすぎることはできないというバランスをとる行為があります。そうしないと、ユーザーは試用版から何も得られません。同時に、制限が緩すぎると、購入するインセンティブがなくなります。
[かなり] ネットワークに接続している可能性が高い場合は、インストーラーを Web サイトに登録して、起動するたびに確認することができます。
それが不可能な場合は、ファイル システム上の誰でも変更できるポイント (レジストリ エントリ、および /etc conf ファイル内のエントリなど) に値を書き込むことができる場合があります。