4

私が書いたソフトウェアのシリアル番号検証/保護を書いています。

シリアル番号検証ツールがパターン マッチングを使用していると仮定すると...シリアル番号が検証されたら、ユーザーにシリアル番号を要求しないようにプログラム自体を変更するにはどうすればよいですか?

個別のライセンス ファイルを作成する必要はありません。これをプログラム自体に埋め込む方法はありますか? または、レジストリが他の唯一のオプションですか(オンライン検証などを除く)

4

4 に答える 4

6

プログラム自体を実際に編集しようとすべきではありません - 署名/強力な名前付けが壊れます。exe/dll ファイルはほぼ確実にロックされます。また、たとえシャドウ コピーを行ったとしても、多くのユーザーは編集権限を持っていません。プログラムファイルに(またはクリックワンスとして)。

ライセンス ファイルやレジストリ設定などの外部のものが適切と思われます (クライアントごとにサーバーでアプリをビルドする場合を除きます)。

于 2011-01-05T09:24:09.723 に答える
2

個人的には、常にマシンのハードウェアから一意のキーを生成し、これをレジストリに保存します。

これは一意のキーの簡単な例ですが、ソフトウェアのバージョンごとに別々のキーが必要な場合は、それを拡張する必要があります。

http://www.vcskicks.com/hardware_id.php

于 2011-01-05T10:09:15.443 に答える
2

これをプログラム自体に埋め込む方法はありますか?

アセンブリの変更を示唆している場合は、それが可能です*。実行中のアセンブリはファイルシステムによってロックされるため、現在実行中のアセンブリと変更中のアセンブリの2つのアセンブリが必要になります。そして、注入しようとしている新しい値を格納するのに十分なスペースを予約する必要があります。

*これを証明するために、文字列の値を書き込むだけの小さな実行可能ファイルを作成し、16進エディターを使用して文字列の値を変更しました。

ただし、どのような変更を加えたかについてはかなり賢明である必要があります。そうしないと、ソフトウェアを登録してから、変更したバイナリを他のマシンにコピーするだけで、登録プロセスが回避されます。

レジストリに登録の詳細を保存することは、おそらくはるかに簡単な解決策です。

于 2011-01-05T09:50:36.437 に答える
0

入力したシリアル キーをファイルまたはレジストリに保存し、ユーザーがアプリケーションを起動するたびに認証することができます。

于 2011-01-05T09:24:30.627 に答える