- 締切済み
シェアウェアなどの期間限定機能
シェアウェアなどでよく見かける使用期限を制限する期間限定機能はどのように実装されているのでしょうか? 使用開始日付をレジストリなどに格納するようなソフトもあるようですが、一般的にはどのように実現しているのでしょうか? 技術情報をお持ちの方がいましたら教えてください。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- rot-N
- ベストアンサー率27% (118/432)
レジストリ、iniファイルは、簡単に書き換えが出来ますので、お薦めできません。 私のプログラムは、月毎にデータを作成するので、2ヶ月分のデータが有ったら試用期限切れとしていました。手抜きです。でも、そう簡単には判らないと思います。単純にレジストリにインストール日付を書くよりは面白いでしょ(^^;)。 インストールしたフォルダの作成日付というのも、笑えるかもしれません。(アンインストールの時は、一番上のフォルダを残す(^o^)) チェックプログラムを作るコツは、「ゼッタイに判らない方法にするんだ」じゃなくて、「まぁ、判っちゃった人には、しょうがないかな」と言って、楽しんで作成することです。 なお、どの様な方式で期限日を決めるにせよ、その期限日で有ることを判定するプログラムは、判りにくい様に、暗号化しましょう。私を含めて、クラッキングを楽しむ人間にとって一番楽なのは、期限日をチェックする部分のプログラムが暗号化もせずに書かれている事です。 保存情報は、簡単にちょっと見では保存情報だと判らない程度に書いておけば十分です。 簡単に言えば、日付と時間のバイナリでXORした後、16進数の文字にしてあるだけで、それが何を意味するか判りません。 それよりもチェックのプログラムをしっかり作成しましょう。 # OZAWA って、聞いたこと有りますか? レジストリのキー名やをiniファイルの項目名の部分を「EvaluationDate」など、期限日関係であることを明白に書いている人がいます。判りやすいのですが、まぁ、それ以上のコメントはしません(^^;)。
- xcrOSgS2wY
- ベストアンサー率50% (1006/1985)
「一般的な方法」と言えるような包括的なものはありません。それぞれの作者が、あるいは工夫をこらして、あるいは手を抜きながら、実装しています。 ざっと考えられるのはこんなところでしょうか。 【保存する情報の内容】 ・使用開始日を保存(質問者さんが挙げられていますね) ・インストール日を保存 ・使用開始日に関係なく使用可能最終日が固定(ベータ版ソフトなどでたまに見かけます) 【情報の保存先】 ・レジストリ ・ファイル ・ハードディスクの未使用空き領域 ・CMOS ・ネットワーク上のサーバ 【その他】 ・保存情報を暗号化 ・保存情報をハッシュ化 ・OSのライセンスライブラリにお任せ
お礼
回答ありがとうございます。 >レジストリ、iniファイルは、簡単に書き換え >が出来ますので、お薦めできません。 >私のプログラムは、月毎にデータを作成する >ので、2ヶ月分のデータが有ったら試用期限 >切れとしていました。手抜きです。でも、 >そう簡単には判らないと思います。単純に >レジストリにインストール日付を書くよりは >面白いでしょ(^^;)。 そうですね。 インストール日付の生書きより断然わかり にくいですね。 >インストールしたフォルダの作成日付と >いうのも、笑えるかもしれません。 >(アンインストールの時は、一番上のフォルダを >残す(^o^)) これも観点としては面白いと思いました。 レジストリにターゲットを置いたクラッカーには 強いかもしれません。 初心者にはいとも簡単に破られそうですが。 >チェックプログラムを作るコツは、「ゼッタ >イに判らない方法にするんだ」じゃなくて、 >「まぁ、判っちゃった人には、しょうがないか >な」と言って、楽しんで作成することです。 >なお、どの様な方式で期限日を決めるにせよ、 >その期限日で有ることを判定するプログラムは、 >判りにくい様に、暗号化しましょう。私を >含めて、クラッキングを楽しむ人間にとって >一番楽なのは、期限日をチェックする部分の >プログラムが暗号化もせずに書かれている事です。 >保存情報は、簡単にちょっと見では保存情報 >だと判らない程度に書いておけば十分です。 >簡単に言えば、日付と時間のバイナリでXOR >した後、16進数の文字にしてあるだけで、 >それが何を意味するか判りません。 確かにエンコードの方法はいろいろありますが、 そんなに作りこまなくても、ちょっとした工夫で 見破られにくくなるんですね。 ># OZAWA って、聞いたこと有りますか? う~ん。 聞いたことありません。 調べてみます。