13

オンラインでかなり安く (10 ドル) 販売する予定の写真家向けのユーティリティを書きました。ライセンスを要求する前に、ユーザーがソフトウェアを 1 週間程度試用できるようにしたいと思います。これは個人的なプロジェクトであり、ソフトウェアはそれほど高価ではないため、プロのライセンス プロバイダーのサービスを購入する価値はないと思います。

現在、アプリケーションは、試用期間の有効期限が切れるか、有効なライセンスがあるかを指定する暗号化された文字列を含むレジストリ キーをチェックします。キーが存在しない場合は、試用期間キーが作成されます。

したがって、もう 1 週間無料で利用するために必要なことは、レジストリ キーを削除することだけです。特にアプリがたったの $10 の場合、多くのユーザーがそれを行うとは思いませんが、正当なユーザーに負担をかけずにこれを行うためのより良い方法があるかどうかに興味があります. 私は普通に Web アプリを書いていますが、これまでこのようなことを扱ったことはありません。

それが重要な場合、アプリは.NET 2.0にあります。

4

10 に答える 10

15

編集: ローカル セキュリティ機関 (LSA) にレジストリ情報を保存することで、現在のライセンス スキームをクラックするのをかなり困難にすることができます。ほとんどのユーザーは、そこからキー情報を削除できません。MSDN で LSA を検索すると、必要な情報が得られます。

ライセンス スキームに関する意見は、個人によって異なり、特定のユーザー グループ (写真家など) よりも開発者の間で大きく異なります。深呼吸をして、アプリケーションが解決するビジネス ニーズを考慮して、ターゲット ユーザーが何を受け入れるかを確認する必要があります。

これは、この件に関する私の個人的な意見です。同意しない声の個人がいるでしょう。

これに対する答えは、アプリケーションがどのように使用されるかによって大きく異なります。アプリケーションを毎日数回使用することが予想される場合は、非常に長い試用期間 (数か月) を利用して、ロックイン状況を作成することをお勧めします。これが機能するには、支払いがすぐに必要になることをソフトウェアがユーザーに警告する猶予期間が必要です。ソフトウェアが試用期間について沈黙していれば、猶予期間の前に大きな成功を収めることができます。

この非常に大胆な声明を信じるかどうかは、もちろん完全にあなた次第です。ただし、使用する場合は、アプリケーションの使用頻度が低いほど、試用期間を短くする必要があることに注意してください。また、支払いがユーザーにとって非常に迅速かつ簡単であることも非常に重要です (可能な限り少ないデータ入力と少ないクリック数)。

アプリケーションの使用方法について非常によくわからない場合は、非常に短い試用期間を選択する必要があります。私の経験では、この場合、アプリケーションが試用期間中であるという事実について沈黙していれば、より良い結果が得られます.

ライセンス目的では効果的ですが、「Call Home」機能は多くの人からプライバシーの脅威と見なされています。個人的には、使用しているソフトウェアに対価を支払っても構わないと思っている顧客にとって、これは悪いことだという考えには同意しません。したがって、アプリケーションが定期的にライセンス ステータス (試用版、有料) をチェックし、ユーザーがソフトウェアの支払いに応じられるようにするライセンス スキームを実装することをお勧めします。ただし、これは小さなユーティリティ アプリケーションではやり過ぎかもしれません。

非常に小規模な、または単純なユーティリティ アプリケーションの場合は、試用期間なしの前払いが最も効果的であると私は主張します。

ソリューションのセキュリティに関しては、開発作業に比例するようにする必要があります。私の仕事では、パートナーやディーラーが関与し、開発への投資が非常に高いため、セキュリティは非常に重要です。小規模なユーティリティ アプリケーションの場合は、適切な価格設定を行い、ビジネス ニーズに対応するソフトウェアにお金を払ってくれる正直なユーザーに頼る方が理にかなっています。

于 2008-09-19T18:43:44.810 に答える
11

複雑な保護スキームを実行する意味はあまりありません。基本的に、次の 2 つのいずれかが発生します。

  1. あなたのアプリは十分な人気がなく、誰もクラックしません。

  2. あなたのアプリが人気を博し、誰かがそれをクラックしてリリースすると、知識がまったくない人でも、あなたをだまそうとすれば、そのクラックを簡単にダウンロードできます。

#1 の場合、1 人か 2 人の余分な人にあなたのアプリを購入してもらう可能性があるため、スキームに多くの労力を費やす価値はありません。#2 の場合、とにかく誰かがクラックしてしまい、その努力が無駄になるため、多くの努力をする価値はありません。

基本的に私の提案は、あなたがすでにそうであるように、単純なことをするだけで、それは同じくらい効果的です. あなたから騙したり盗んだりしたくない人はお金を払いますが、あなたを騙したい人は関係なくそれをします.

于 2008-09-19T18:31:48.253 に答える
4

管理しているサーバーでホームページをホストしている場合、ソフトウェアのダウンロード可能な試用版を毎晩自動的に新しいバイナリにコンパイルすることができます。このコンパイルは、ソフトウェアの有効期限が切れたときに、プログラム内のハードコードされた datetime-value を置き換えます。このように「カンニング」する唯一の方法は、コンピューターの日付を変更することですが、問題が発生するため、ほとんどの人はそうしません。

于 2008-09-19T18:31:57.800 に答える
3

シェアウェア スターター キットをお試しください。これは私が Microsoft で開発したもので、他にも必要な機能がいくつかあるかもしれません。

http://msdn.microsoft.com/en-us/vs2005/aa718342.aspx

于 2008-09-19T18:39:48.313 に答える
2

ソフトウェアの開発を継続する予定がある場合は、ランサム モデルを検討してください。

http://en.wikipedia.org/wiki/Street_Performer_Protocol

基本的に、ソフトウェアの改善を開発し、リリースする前に (DRM なしで) 一定額の寄付を求めます。

于 2008-09-19T18:34:57.920 に答える
2

ライセンスについては冷静に。これがあなたの情熱であり、あなたの努力の結晶であることを前もって説明してください。人々に正しいことをする機会を与える。誰かがそれを海賊版にしたい場合、それは最終的に起こります. ビットトレントで自分の本を見て絶望したことを今でも覚えていますが、それはあなたが対処しなければならないことです. カジュアルな著作権侵害に屈しないでください (あなたが今やっていることは素晴らしいことです)。私は今でも、営利目的のコーディングを価値のあるものにする誠実な人々が十分にいると信じています。

于 2008-09-19T18:48:43.033 に答える
2

ユーザーにとっては簡単ですが、あなたにとっては簡単ではない方法の 1 つは、有効期限をハードコーディングして、インストーラーの新しいバージョンを時々作成することです... :)

もし私があなただったら、あなたがすでに行っていることよりも高度なことはしません。あなたが言うように、それはわずか 10 ドルです。誰かがあなたのシステムを本当にクラックしたいのであれば、あなたがどんなに複雑なシステムを作ったとしても、彼らはそれを実行します。

ネット接続を要求し、サーバーに試用キーを生成させることで、スキームのもう少し高度なバージョンを実行できます。sign(hash(unique_computer_id+when_to_expire)) の行に沿って何かを行い、サーバーが有効期限に署名したことを公開鍵でアプリに確認させる場合、バイパスするには「実際の」ハックが必要です。

このようにして、一意の ID のサーバー側を保存し、有効期限を 1 回または 2 回以上生成することを拒否できます。一意の ID として何を使用すればよいかわかりませんが、Windows から何か便利なものを取得する方法があるはずです。

于 2008-09-19T18:39:24.680 に答える
2

非常に低価格で販売しているアプリケーションでも、まったく同じ問題に直面しています。

アプリを難読化するだけでなく、レジストリ内の 2 つのキーを使用するシステムを思いつきました。1 つはインストールの時間を決定するために使用され、もう 1 つは実際のライセンス キーです。キーの名前はわかりにくく、キーが見つからない場合は、インストールが改ざんされていることを示します。

もちろん、両方のキーを削除してアプリケーションを再インストールすると、評価時間が再び開始されます。

とにかく、アプリをクラックしたい人が成功するか、成功した人がクラックを見つけるので、それは問題ではないと考えました.

結局のところ、私はアプリケーションをクラックするのが簡単になりすぎないようにするという目標を達成しているだけであり、これにより、顧客の 80 ~ 90% がクラックを阻止されると思います。結局のところ、アプリケーションは非常に低価格で販売されているため、この問題に今まで以上に時間を費やす正当な理由はありません。

于 2008-09-19T18:43:19.177 に答える
2

「インストールからの日数」に基づいて評価するのではなく、使用した日数、または実行した回数などに基づいて評価してください。人々は、シェアウェアをダウンロードして 1 回か 2 回実行した後、再び必要になるまで数週間忘れる傾向にあります。それまでに試用版の有効期限が切れている可能性があるため、しばらくの間アプリをインストールしていたとしても、アプリの使用に夢中になる試みは数回しかありません。代わりに、アクティブ化/日の数により、ユーザーはアプリをタスクに使用する習慣を身に付けることができ、販売も強化されます (つまり、このアプリを 30 回使用しています...)。

さらに良いことに、機能を制限することは、タイムアウトするよりも効果的です。たとえば、写真アプリでユーザーを 1 メガピクセルの画像に制限し、必要なだけ使用できるようにすることができます。

また、アプリの価格を 20 ドル (または 19.95 ドル) にすることも検討してください。マイクロペイメントの設定がすでに整っていない限り (iPhone ストアや XBoxLive など)、オンラインで特定の価格 (アプリの種類によって異なりますが約 20 ドル) を下回るものを購入することを嫌う傾向があります。何かが安価である、それは非常に良いものであってはなりません。実際には、より高い価格でコンバージョン率を上げることができます (もちろん、ある程度までは)。

于 2008-09-19T19:02:19.523 に答える
1

このような状況では、あなたが何をするかはあまり重要ではないと思います。何らかの保護があれば、ユーザーの 90% を停止できます。残りの 10% は、あなたのソフトウェアにお金を払いたくない場合、あなたが何をしようとも保護を回避する方法を見つけ出すでしょう。

少し目立たないものが必要な場合は、アプリケーションが起動時に存在をチェックするシステムファイルのように聞こえるファイルを System32 に配置できます。それを追跡するのは少し難しいかもしれません。

于 2008-09-19T18:31:26.210 に答える