0

実行可能ファイルが別の PC にコピーされるのを防ぎたいので、別の PC の別の場所で既に使用されているという情報を EXE ファイル内に保存する必要があります。

ユーザーのハード ドライブ番号などの小さな情報を EXE ファイルに埋め込んで、この EXE ファイルを別の PC にコピーしたときにこの情報を利用できるようにすることはできますか?

EXEファイルに埋め込まれたリソースファイルを読み書きする方法があるのではないかと思いましたが、リソースファイルは読み取り専用であると思います。もしそうなら、EXEファイル内に必要な情報を保持できる場所がありますか?

4

2 に答える 2

3

あなたはこのように困難な戦いを戦っています。独自のライセンス スキームを作成することは可能ですが、多くの作業を行う準備が必要です (私はそれを行ったので、直接の経験から話します)。解決すべきいくつかの問題:

  • ハード ドライブに障害が発生し、交換が必要な場合、ユーザーはプログラムを使用できなくなります。これが発生するたびに、怒っているユーザーからサポートの電話がかかってきます。
  • ユーザーが仮想マシン内でプログラムを実行する場合、ハード ドライブのシリアル番号は一意ではありません。誰でも仮想マシンのクローンを作成でき、プログラムを別のマシンで実行できるようになります。
  • ハード ドライブのシリアル番号は変更できます。ハードウェアから直接取得されるわけではありません。
  • ハード ドライブがリムーバブル ドライブの場合はどうなりますか? ユーザーはリムーバブル ドライブからプログラムを実行し、それを別のマシンに移動し続けることができます。
  • できたとしても、ライセンス情報が改ざんされないようにするにはどうすればよいでしょうか。

本当に製品のライセンスを取得したい場合は、既存のライセンス製品を調べてください。安価ではありませんが、何らかの信頼性を得るために必要な (かなりの量の) 作業を既に行っています。

最小限の保護だけが必要な場合でも、次のことを考慮してください。シークレット トークンの最小限のセキュリティを取得するには、多くの作業を行う必要があります (それが何であれ)。そのセキュリティが最小限である場合、そのすべての作業を行っても何の意味がありますか? 無意味なシリアル番号を入力するよう強制するだけでは、正直な顧客を困らせるだけです。十分に保護されていないものを盗もうとする人は、それを盗みます。「単純な」保護スキームはすべて、ユーザーを悩ませ、誤った保護意識を与えるだけです。

私はReprise RLMを使用することになりました- 私はこの会社とは関係がありませんが、販売およびサポート担当者との良い経験があり、彼らの製品はテスト シナリオでうまく機能しました。

于 2013-08-25T16:29:20.130 に答える
2

わかりました、私は提案されたすべての亜種を分析し、私の場合、私はインディー開発者であり、非常に大きなアプリケーションを扱うつもりはないという理由から、独自のコピー防止システムを開発する方が良いと判断しました.

念のため、誰かが同じ問題に直面しています - ここにアルゴリズムがあります (まあ、そのうちの 1 つです):

  1. ユーザーが APP1.EXE を起動します
  2. APP1.EXE は自分自身をいくつかの変数に読み込み、その末尾に HDD シリアル番号を追加します。たとえば、HDD シリアル番号です。末尾に何かを追加しても、EXE ファイルが壊れることはなく、PE ヘッダーについて心配する必要はありません。
  3. 残念ながら、EXE は実行時に自身を保存できないため、APP2.EXE という名前のコピーを HDD に関する情報とともに保存します。
  4. APP2.EXE が保存されると、APP1.EXE は Process.Start() を介して別のプロセスとして開始し、終了します。
  5. これで APP2.EXE が実行され、APP1.EXE + HDD シリアル番号と同じ内容になるため、APP2.EXE からのすべてのバイトを APP1.EXE に書き戻し、現在のプロセスを閉じて APP1.EXE を再度開始します。
  6. これから APP1.EXE が実行され、現在の HDD に関するすべての必要な情報があるため、ユーザーが APP1.EXE を起動するたびに、コンテンツの最後にある HDD 番号とユーザーの PC 上の実際の HDD 番号を比較し、それらが異なる場合はプロセスを終了します。
  7. APP2.EXE を削除して、これらのファイルが HDD に関する情報を交換する方法をユーザーが認識できないようにします。

自己削除 EXE に関する有用な情報は、次の場所にあります。

PS私はそれがセキュリティの巨大な穴のようなものであることを知っています(すべてには言及しません)が、このアルゴリズムの実装にはC#でわずか20行のコードが必要で、どこでも使用できる別のDLLに移動され、動作します. 上記のアルゴリズムには登録はなく、ユーザーは単にこのアプリを取得して使用できます。80% までのユーザーは、このアプリがどのようにコピーから保護されているかを認識していないと確信しています。

実装へのリンク: https://bitbucket.org/artemiusgreat/examples/src/ef7b60142277?at=master

于 2013-08-28T20:17:05.460 に答える