13

私は、単純な登録メカニズムを使用し、ユーザーが購入前のデモ期間にアプリケーションを使用できる商用製品を書いています。

私のアプリケーションは、ユーザーがまだデモ/試用期間内にあるかどうかを計算するために、登録情報 (入力されている場合) および/または最初の起動日をどこかに保存する必要があります。登録メカニズム自体はほぼ完成しましたが、ユーザーのディスクに登録情報を保存するための適切な方法を見つける必要があります。

最も明白なアイデアは、試用期間を設定ファイルに保存することですが、ユーザーは時々それらを削除したりいじったりする傾向があるため、登録情報を別の隠しファイルに保存することをお勧めします。

そこで私の質問です。Windows、Mac OS X、および Linux でこのような隠しファイルを保持および作成するのに最適な場所/戦略は何ですか? これまでに私の頭に浮かんだのは次のとおりです。

Linux/Mac OS X

ほとんどの Unix ライクなシステムは、ユーザーがファイルを書き込める場所に関してはかなりロックダウンされています。ほとんどの場合、これは/tmpディレクトリとユーザーのホーム ディレクトリのみです。ここで最も簡単なのは、ドット プレフィックスを付けてファイルを作成し、目立たなくしてから、アプリケーションに関連付けられていることが明らかではない名前を付けることだと思います。

ウィンドウズ

おそらく Linux/Mac OS X によく似ています。最近の Windows バージョンでは、ファイル システムのアクセス許可に関して、より制限が厳しくなっています。


とにかく、あなたのアイデアや考えを聞きたいです。過去に似たようなものをすでに実装している場合はなおさらです。

ありがとう!


アップデート

私にとって、そのようなファイルの場所は、このコピー保護の方法が良いか悪いかという質問の議論よりも関連性があります。

4

7 に答える 7

4

ファイルをどこに置くかは誰が気にしますか。守りたい内容です。

サーバー側では、ユーザー情報を秘密鍵で暗号化/署名し、ユーザーに配布します。ライセンス ファイルを電子メールで送信し、アプリケーションを接続してダウンロードします。

アプリケーションに公開鍵を含めます。ファイルを認証/復号化できない場合は、失敗します。できれば、機能を続行します。ライセンス ファイルを認証できない場合にのみ、サーバーに再接続する必要があります。これをサポートするには、最も原始的な「ライセンス サーバー」のみが必要です。ファイルを電子メールで送信する場合、「ライセンス サーバー」は、文字列を暗号化してユーザーに電子メールで送信する単なるスクリプトです。

アプリケーションを巧妙にハッキングしようとする試みからあなたを守るものは何もありません。しかし、この解決策では、一般ユーザーがライセンスを破ることができなくなります。

また、ユーザーが複数回再登録したり、ライセンス ファイルを友人と共有したりすることを防ぎたい場合は、MAC アドレス サーバー側とライセンス ファイルに記録します。個人的には、私はこれをしません。巧妙なハッカーを止めることはできませんが、いたちごっこゲームにどれだけの時間を費やすかはあなた次第です。

于 2010-04-30T18:04:23.163 に答える
1

Windows の場合、 Isolated Storageを使用してみるとよいでしょう。これは、製品固有の場所にファイルを保存します。この場所は通常、十分に目立たない (そして非常に深いパスを持つ) ものであり、開発者に対して完全に透過的であるという利点があります。

于 2010-04-30T17:25:50.837 に答える
0

POSIXシステムは、アプリデータをユーザーのホームディレクトリの隠しファイルに配置する必要があります。Windowsシステムは何かを下に置く必要がありますCSIDL_APPDATA

于 2010-04-29T13:16:18.977 に答える
0

このアプローチの問題を説明するために、無料試用版のタイムスタンプを に保存する Linux ベースのメディア サーバーがありました/usr/bin/.tv。ファイルがアクセスされていることに誰かが気付くだけstraceで済みます。この場合、ファイルを削除するだけでトライアルが再開されます。

開発者が 1 人である場合、1 人がクラックするだけで全員が利用できる保護スキームを実装するために、多額の費用と時間を費やす必要があります。もちろん、あなたの目的はカジュアルなソフトウェアの海賊版を阻止することだけかもしれません。その場合、最も基本的な保護 (上記の方法など) でさえもうまくいきます。

于 2010-04-29T15:58:31.430 に答える
0

特に Mac では、この種のファイルは、ユーザー ライセンスの場合は ~/Library/Application Support/YourAppName、マシン ライセンスの場合は /Library/Application Support/YourAppName にあります。

ユーザーがアプリのライセンスを取得すると、ファイルを ~/Library/Application Support/MyAppName に書き込みます。特別なアクセス許可は必要ありませんが、マシン ライセンスを作成する場合は両方の場所から読み取って、マシン ライセンスを許可します。

于 2010-04-30T17:35:51.513 に答える
0

正直なところ、何をしてもバレてしまいます。システムが自己完結型の場合、つまり、実行時にインターネットやその他のデバイスに接続する必要がない場合、ロックキーの両方がコードまたはディスクに書き込むデータに含まれている必要があります。そのため、キーを難読化することはできますが (ロックの場合もあります)、システムの所有者はシステム トレース ツールなどを呼び出して、あなたを見つけることができます。でも、あなたはそれを知っていたと思います。すべての主要なソフトウェア ベンダーは、これを機能させるためにさまざまな方法を試してきましたが、毎回失敗しています。

ソフトウェアフォンを定期的に家に持ち帰って、まだ有効なライセンスがあるかどうかを確認することが唯一の希望だと思います。

于 2010-04-29T13:18:22.020 に答える
-1

Windows版のレジストリを使用してください。データを中央の場所に保持するように構築されており、追加のボーナスとして、ユーザーがフォルダー全体を削除しても、設定はまだレジスターに残っています(*)

here on stackoverflowは、Java プログラミング言語を使用してレジストリにアクセスする方法を説明する記事です。

Mac にこのような機能があるとは思いませんし、Linux にも確かにないことはわかっていますが、これは始まりです。

(*)もちろん、レジスターは、アプリに属する​​キーを簡単に削除できるいじくり回すユーザーにとっても安全ではありません。

于 2010-04-30T17:45:53.053 に答える