3

一般的な製品アクティベーション スキームは次のとおりです。

  1. 唯一無二のシリアルNo. ユーザーに割り当てられます
  2. ユーザーのマシンに対して一意のハードウェア ID が生成されます。

この情報をベンダーに提供すると、ベンダーはアクティベーション コードを発行します。

アクティベーション コードの生成方法とその内容を知りたいです。また、アクティベーション コードがユーザーの PC のアプリケーションに入力された後の一般的なスキームは何ですか?たとえば、次回はどのようにデコード、保存、チェックされるのでしょうか?

ありがとう

4

3 に答える 3

5

これを行う非常に簡単な方法は、PC の関連ハードウェアのリストを文字列にコンパイルし、それに対して MD5 ハッシュを実行することです。したがって、文字列にはたとえば含まれます

「Pentium 4 デュアルコア 3.8GHz、HDD1:320GB」
など ほぼすべての言語で MD5 ハッシュの無料の実装が多数あります。Google 検索を実行できます。

ターゲットにしているプラ​​ットフォームはわかりませんが、Windows を使用している場合は、WMI をクエリするか、Windows API 呼び出しを使用して、PC のハードウェア構成を取得できます。たとえば、WMI で確認する物理メモリ クラスはWin32_PhysicalMemoryです。

ソフトウェアが最初にインストールされると、このハッシュがコンパイルされ、アクティベーション サーバーに送信されます。アクティベーション サーバーは、そのハッシュにのみ一致する対応するコードを送り返します。非常に単純で役に立たない例 - ハードウェア ハッシュが 123 で、ハードウェア ハッシュとアクティベーション コードが追加された後、すべての数字が 9 である必要があるというチェック アルゴリズムがあるとします。アクティベーション サーバーは 876 を返します。プログラムは 2 を追加します。コードを組み合わせて 999 を取得し、ロックを解除して使用します。

プログラムは定期的にハードウェア ハッシュを再作成し、それをアクティベーション コードに追加して (私の非常に単純な例のみ)、それらがまだ合計されていることを確認します。そうしないと、製品がロックされ、再アクティベーションを要求される可能性があります。

ただし、このコピー防止方法は使用しないことを強くお勧めします。なぜだめですか?

  • ユーザーがハードウェアをアップグレードしたり、PC を再インストールしたりするたびに、ソフトウェアを再アクティブ化するためのサポート費用が発生し、ユーザーに不便を強いることになります。
  • アクティベーション サーバーや製品を廃止したり、会社を閉鎖したりすると、製品を使用するためにお金を払った人々のアクセスが効果的にシャットダウンされます。
  • これは、ユーザーの PC をほとんどハードウェア ドングルに変えています。これは一見良いアイデアのように思えますが、ユーザーがソフトウェアを購入するのを思いとどまらせます。

むしろ、登録者の名前または会社名のハッシュを使用し、プログラムがそれらに登録されていることが明らかな方法でプログラムに埋め込むことをお勧めします。はい、これにより、技術的には、ソフトウェアをより簡単にコピーできます。

要するに、あなたのソフトウェアが多くの人にとって本当に価値があるなら、それがどんなに複雑であっても、誰かがあなたのコピー防止スキームを回避するでしょう. ハードウェア構成に基づく製品アクティベーションを使用すると、本当に取引したい 1 つのグループの人々、つまり基本的に正直で、製品を合法的に使用したいと考えている人々だけが悪化します。合法的なソフトウェアについて情報を提供しない人々は、アクティベーション スキームがクラックされたバージョンを使用します。

私は個人的に、PC を変更したり、会社が閉鎖されたりした場合に使用できるという保証がない製品を購入することを軽蔑しています。これは、人々がジョージ・オーウェルの 1984 を Kindle 用に購入した最近の事例のようなもので、その後著作権紛争が発生したときに、Amazon は人々が購入したこの本のすべてのコピーをリモートで削除しました。

ちょうど私の2c。

于 2009-12-09T07:32:41.827 に答える
1

Michael(Todd)がコメントしたように、方法やスキームはベンダーによって異なります。それが本当に標準的なものであれば、おそらく「ハック」する方が簡単ですよね?

あなたの最終的な目的は、ソフトウェアを不正使用から保護することだと思いますか?

関連するSOの投稿をいくつか示し
ます。ソフトウェアを違法な配布からどのように保護しますか?
ソフトウェアの著作権侵害を阻止する方法は?

更新:
OPの質問に直接答えるには:

アクティベーションコードがどのように生成され、その内容は何ですか?
@:シリアル番号の独自のハッシュ/暗号化にすることができます。ユーザー/製品/日付情報または事実上他のものとマッシュアップ。

また、アクティベーションコードがユーザーのPCのアプリケーションに入力された後の一般的なスキームは何ですか?たとえば、次回のデコード、保存、チェックの方法などです。
@:ソフトウェアには、少なくとも有効性をチェックするためにこのコードを理解できるアルゴリズムが含まれている可能性があります。ファイルとして、レジストリに保存したり、既存のファイルなどに埋め込んだりすることもできます。

于 2009-12-09T06:24:36.320 に答える
0

似たようなものを自分で実装したいので、質問したと思います。

ここでは、購入したソフトウェアの正当性を保護するために使用できるスキームの概要を説明します。これにより、会社を著作権侵害から保護し、クライアントの貴重な購入を合法的に維持し、比較的簡単に登録することができます。

このスキームは、3 つの個別のデータ要素を追跡することによって機能します。1 つは自動生成され、1 つはユーザーによって入力され、もう 1 つはこれら 2 つの要素から計算されます。製品がアクティブ化されていない場合、機能セットが制限されて実行されるか、まったく実行されない可能性があります。

この手順には Web サイトとの通信が含まれますが、Web サイトが利用できない場合でも、ユーザーがライセンスの問題でイライラすることなくソフトウェアを使用できるようにするための代替メカニズムがあります。方法論

このソフトウェアは、次の 3 つの基本的なデータ要素を利用します。

  • [IC] インストール コード: 自動生成されたコード。これは、特定のインストールによって生成され、そのインストールに固有のものである可能性があります。ソフトウェアが再インストールされると変更され、誰がインストールするかに依存しません。これまで、一部のベンダーはハードウェア ハッシュを使用していましたが、インスタンス化のたびに取得するために保存される、ランダムに生成されたコードである可能性もあります。ストレージからコードを削除することは、基本的にソフトウェアをアンインストールすることと同じです。
  • [UI] ユーザー ID: 登録済みの一意の識別子。これは、ロック解除コード、クライアント コード、会社コード、またはシリアル番号と呼ぶことができます。誰がこの特定のインストールを購入したかを一意に識別します。
  • [HASH] ハッシュ: 計算された値。この認証の最後の部分は、ソフトウェアが合法的に登録され、準備ができていることをソフトウェアに伝えるものです。これは、他の 2 つの部分から派生可能であり、ファイル システム、Windows レジストリ、またはその他の場所に保存されている必要があります。

ロジックの流れ

擬似コードでは、ソフトウェアは次の手順で実行されます。

begin:
  load IC
  if not IC: IC = generateIC
  load UI
  if not UI: UI = promptUser
testHash:
  load HASH
  if HASH=hash(IC,UI): goto valid
  HASH = activateLicense()
  if not HASH=hash(IC,UI): goto invalid    
valid:
  REV = revokeLicense()
  if REV: goto invalid
  done : run software
invalid:
  done : do not run software

generateIC:
  IC = some unique identifier
  store IC
  return IC
promptUser:
  UI = get id from user input
  store UI
  return UI
activateLicense:
  HASH = wwwResponse('activationRequest')
  store HASH
  return HASH
revokeLicense:
  REV = wwwResponse('checkIfRevoked')
  if REV: erase HASH
  return REV

擬似コードには、オプションの 4 番目の要素も含まれます。

  • [REV] 取り消されたライセンスの兆候: 会社のソフトウェア会社は、ソフトウェアのアクティベーションの数を追跡し、不正なユーザーへのアクセスを取り消すことができます。これは保存する必要はなく、www.

Web サイトに接続できないということは、ライセンスの状態が変わらないことを意味するだけです。ソフトウェアが Web サイトに直接接続できない場合は、ユーザーが IC と UI をブラウザーに入力し、ブラウザーがソフトウェアに手動で入力できる HASH を電子メールで送信する、Web 有効化ポイントから代替手順を利用できる可能性があります。これは少しだけ複雑ですが、ユーザーがメールで送信されるハッシュ コードを受け取りたい場合は、有効なメールを入力する必要があるという重要な要素を使用して、ユーザーが自分でこれを行うことができます。

ハッキング防止や無敵ではありませんが、フラストレーションにつながらない合理的な方法で、両者を保護するのに役立ちます. 関連する実際のメカニズムは、厳重に保護された企業秘密でなければなりません。

ノート:

このスキームでは、IC がコンピューターのハードウェア上のハッシュであるか、ランダムに生成されたキーであるかは問題ではありません。それが変更されたときに起こるのは、ソフトウェアが自分自身を再登録することだけです。これは、そのマシンがインターネットに接続されている場合は問題にならないかもしれませんが、ユーザーの操作が再び必要な場合は少し不便かもしれませんが、前述のとおり、この部分はサイトのセルフサービス機能として引き続き実装できます。アクティベーションの数を数えたり、他の情報を追跡したりするかどうかは、ソフトウェア会社次第です。

于 2014-04-11T17:18:18.660 に答える