1

私はプログラムを持っており、それを制限する必要があります。でも、どの方法がいいのかわかりません。プログラムを実行すると、登録キーとユーザー名が要求されます。それから取るusername+somestring+DateTime.Now。ハッシュに変換し、キーと比較します。true次にAppData、ユーザー名とキーを使用してファイルに保存します。そして、プログラムを実行するときに同じことを行います。そして、この文字列から日付を取得します。もしそうDateTime.Now.Day != DateFromString.Dayならfalse。しかし、ユーザーがこのファイルを削除し、時間を変更してから登録すると... 彼はそれを開くことができます。

1 日の制限を追加する最良の方法は何ですか?

前もって感謝します。

4

2 に答える 2

1

コンピュータ自体の時計をチェックするソフトウェアをユーザーに提供すると、時計を変更することで簡単にだまされる可能性があります。

プログラムをサーバーで認証することをお勧めします。ただし、ユーザーはプログラムを使用するためにインターネット アクセスが必要になります。また、熟練したユーザーがプログラムを変更してチェックをスキップすることも可能です。

ユーザーに何らかのソフトウェアを提供した場合、ユーザーがそのソフトウェアを変更して実行するのを 100% 確実に防ぐことはできません。

于 2012-08-03T15:16:33.533 に答える
1

You need to identify in a unique way the machine on which your program has been installed.
Look at the best voted answer in this question.
Encrypt with a secret key the string obtained and send it to a webservice you have control of.

The webservice register in a database the encrypted string with the data of first run.
At the next run of your program send again the same encrypted string to the webservice.
The webservice check strings and date against the database and send back the result.

This is not an absolute fix for your problem and could be fooled.
At least this will require a different machine, a fake webservice or a crack of your code.

于 2012-08-03T15:22:28.720 に答える