2

ソフトウェアの完全に機能する試用版の作成に取り組んでいます。ここで、時間制限 (30 日間の試用版など) や機能限定の試用版は必要ないので、「ユーザーがソフトウェアを実行できる回数」の試用版を使用するとよいでしょう。

これは C# ベースの .NET アプリケーションであり、これを実装する方法を見つけようと懸命に努力しています。レジストリ キー、ファイル ベースの追跡などを試しましたが、あまり信頼できるものではないようです。

このトピックに関するヘルプをいただければ幸いです。

ありがとう、ローハン

4

1 に答える 1

6

試用期間を追跡する通常の 2 つの方法は、レジストリ キーを使用する方法と、Web サービスを使用する方法です。

  • レジストリ キー:プログラムの起動回数を Windows レジストリのキーに永続化する方法を実装します。おそらく何らかの難読化が行われます。自分の値と、NIC の MAC アドレスなどのマシンに依存する値を含むスキームを暗号化する「ソルト」暗号化スキームが、おそらく最適に機能します。Dotfuscator のようなものを使用して、コードが逆コンパイルされにくいことを確認してください。インストーラーを使用してキーを所定の位置に配置するのが最善です。これにより、プログラムはキーの不在を改ざんの試みとして単純に処理できます。

    次に、起動時にキーを取得し、復号化して検査します。期待どおりの場合は、値に 1 を追加してレジストリに書き戻し、新しい値が許可された起動の数よりも大きい場合は、ユーザーをロックアウトします。レジストリ キーが予期しない値 (改ざんされたことを意味する) である場合 (まったく存在しないなど)、ユーザーをロックアウトします。

    このアプローチの利点は、インターネットを必要とせずに非常に強力なセキュリティを提供できることです。欠点は、「マシンに依存する」詳細が正当な理由で変更される可能性があることです。その場合、ユーザーはすべての開始を使用する前にロックアウトされ、ユーザーを苛立たせる可能性があります。また、ソルティングと暗号化の実装はユーザーのコンピューターに存在します。洗練されたハッカーは、コードを難読化したとしてもプログラムを調べる方法を持っており、実装を発見して模倣してカウンターを「リセット」することができます。それができるのは 1 人の男だけで、他の誰でもできるシンプルな Warez アプリが登場します。

  • Web サービス: 制御するサーバーに WCF サービスを実装します。しっかりとロックして、LAN の外部に出入りする唯一の方法は、WCF が期待するとおりに WCF ポートを経由することです。プログラムとそのインストーラーにクライアントを実装します。インストール時に、インストーラーは、ソフトウェアが特定の MAC アドレスまたはハードウェア ID を持つマシンにインストールされていることを示すサービス メソッドを呼び出します。その固有のマシンがデータベースにリストされていない場合は、追加してください。それ以外の場合は何もしないでください。次に、プログラムの起動時に、プログラムから Web サービスを呼び出し、同じ情報を渡します。Web サービスは開始回数を更新し、クライアントに開始が許可されているかどうかを示す値を返します。

    Web サービスの利点は、Warez を介してマス マーケティングできる方法で移動するのが非常に難しいことです。このようなシステムを攻撃する主な方法は、ライセンス サーバーをハッキングするか、「中間者」を配置して、Web サービスに対するプログラムの要求を彼が制御するコンピュータにリダイレクトすることです。欠点は、コンピューターのハードウェア ID を変更すると、初期のロックアウトが発生する可能性があることです。さらに悪いことに、攻撃者がこれまでに見たことのない新しい MAC アドレスまたはハードウェア ID をスプーフィングし、ソフトウェアを再インストールして、 「新しい」マシンで新しいスタートのセットを使用します。それを防ぐ方法もありますが、追加する難読化とハッキング防止チェックの各レベルは、複雑さのレイヤーを 1 つ追加します。

何をするにしても、80/20 ルールを覚えておいてください。ユーザーの 80% は、試用プロセスを保護するための最も基本的な手段によって正直に保たれます。ユーザーの 20% がそれを回避する方法を見つけるでしょう。その 20% のうち、80% は、追加の措置を講じることによって妨げられます。このプロセスは再帰的です。要点は、どこかで誰かがあなたが講じた対策を回避するだろうということですが、計算が正しければ、シフト暗号化されたレジストリ キーと難読化されたプログラムに直面した場合、ユーザーの 96% は屈服し、フル アクセスに対して料金を支払うことになります。コード。難読化されたキーをマシン固有のものでソルトするなど、何かを追加することで、99.2% のユーザーにそれを提供できます。

于 2012-02-29T20:55:09.370 に答える