パソコン活用研究PCマニアック道(アセンブラ、DOS、Windows、旧型PCの活用研究)

体験版の期限を延長

体験版でフル機能が使えるが、期限付きになっているものが多くあります。中には期限が2週間とか
いうソフトもあって、これではどうやって体験するのか(涙)って時もありますよね。学生ならいざ知らず、
社会人だと、次に起動するのは1ヶ月先というのもよくあるシチュエーションだと思いますが、その時は
もう期限切れ。せめて90日は体験期間がほしいと思ったりしませんか。

最近またこの手の話が各所で盛り上がっていたりするので、ライセンスを守りましょうという堅いことは
少しだけ目をつぶって、期限を無効にすることに関する技術的なお話しを少々したいと思います。
このあたり、堂々とライセンス違反をすすめるサイトや、かなりPCに悪影響を及ぼすかもしれないこと
をなんの警告もなく推奨している劣悪なサイト(初心者がすごい方法あります!みたいな感じで書いている
サイト←真似するとPCにどんな悪影響があるかわかりません)が多いので、少しテクニカルな部分に焦点
あてて、まとめてみました。
もし体験版を使用してみて、ほんとに使いたいソフトなら、お金払って買って下さいね。それから著作権
違反は刑事事件ですから、気をつけて下さい。

なお、今回のネタはかなり昔に実験(Windows3.1、Windows95時代)した時のもので、正確な記録など
残っていないため、記憶を掘り起こして書いてます。内容は自己責任で判断して下さい。

期限付きにするといっても、その方法はソフトによっていろいろです。少しタイプ別に分類してみます。

(A)インストールまたは初回起動時の日時を記録(たいていレジストリに暗号化して記録)しており、
アプリケーションの起動時に1回だけ、その記録と照合して試用期間のチェックをするタイプ。
Windows3.1や95の初期の時代にこういう単純なタイプが多かったようです。起動時だけPCの日時
(システム時間)をいじってやればOK。起動後は元の時間に戻して構わない。
一番単純なこのタイプは、もしシステム時間を戻して起動するのを忘れても、一度アプリケーション
を閉じて、システム時間を調整してから起動しなおすと使えてしまう。しかし、この単純なタイプは
ごく初期の頃のアプリケーションを除いてほとんどみかけません。
(A)’進化型として、毎回起動時にチェックした結果をレジストリなどに記録するものが多くあります。
一度間違って期限切れにしてしまうと、レジストリに期限切れ情報が記録され、次回日付を戻しても
アウト(2度と使えない)になるので注意です。
(⇒このタイプはシステムの復元でなんとか生き返らせることができるケースが多い)

(B)Windows95時代に、もう少し巧妙なタイプが出現。起動時だけでなく、使用中も時々、日時をチェック
している。起動後にチェックした情報もレジストリなどに記録することが多く、このタイプは、起動後に元の
時間に戻すとアウトで、一度アウト(レジストリに期限切れと記録される)になると、2度と使えない。
こういうタイプは使用中常に時間を戻し続けないといけない。

(C)Windows95の後半では、さらに厳しくチェックするタイプ出現。起動後の経過時間も測定していて、
4時間使うと、4時間分使用できる残り期間が少なくなるようなタイプも出現。このタイプは日時の不正な
操作もチェックしていて、不正操作(前回より前の日時で起動するなど)を検知すると即無効になったり
します。


そんでもって、(A)のようなタイプは単純なので(最近はこういうタイプはほとんどないと思うけど)、
システムタイマーをいじってやればいいので簡単。ひところ、「DATE CRACKER」というソフトが
流行っていたけど、(A)対策は「DATE CRACKER」で十分。
「DATE CRACKER」の動作を調べたところ
@指定した日時に時間を戻して、
A指定のアプリケーションを起動、
B2秒後に、元の時間に戻す、
というだけのシンプルなことしかやってません。
従って、(B)以降には対応できません。

(B),(C)のタイプに対応する場合は、アプリケーションから日時のチェックが入るたびに、偽の日時を返答
しなければならない。
RunAsDateとかHookDateというようなソフトは、実際のシステムタイムをいじることなく、アプリケーション
から日時のチェックがあると、指定した偽情報を返すような仕組みになっている。

これらのソフトの動作を調べてみたいなら、「メモ帳」を起動して"F5"を押してみて下さい。
メモ帳は"F5"をおすと現在のシステムタイムを記入してくれますので、これらのソフトがどのような動作を
するのか確認できます。

ただし、RunAsDateやHookDateをかますと、アプリケーションの一部機能が正常に使えなかったり、
異常終了したりすることもあり、それなりに使い勝手は落ちます。肝心な機能が正常に使えないことが
よくありますね。RunAsDateやHookDateも万能ではありません。システムエラーを発生させたり、
explorerを巻き込んで落ちたりすることもあり、使用にはリスクがありと思って自己責任でお願いします。


「Ulead DVD Movie Writer」 「やさしくPDF OCR」 などはRunASDATEを使ったら使用期間が残っている
のにゼロになったとの報告などもあります。メーカーもいろんな不正使用対策をとっているので、(C)タイプ
の進化バージョンでは、RunASDATEも使えない(あるいは不正検知して即刻使用期限ゼロにする)ことも
十分ありえます。
永久に使いたいと思うほどのソフトなら、正規に購入するのがいいでしょう。 各ソフトメーカーが不正対策に
工数をかければかけるほど、ソフトの値段は上がってしまいます。ソフトの不正使用は最終的には消費者
が自らの首を絞めることになります。

多少、VBが使えるなら、システムタイム自体をリアルにいじってしまうプログラムを作ってしまうのも手です。
システムタイム自体をリアルにいじる方法を使うと、RunAsDataやHookDateで異常が起こるアプリケーション
も正常に使えるケースがあります。
ただし、リアルにシステムタイムをいじると、Windowsの裏で動いている多くのサービスや他のソフトにどんな
悪影響があるかわかりませんので、これもあくまで自己責任でお願いします。
ちょっとだけ、どんな悪影響があるか例をあげてみます。
システムタイムを動作時に使うようなアプリケーションの機能は、リアルにシステムタイムをいじると、
正常に機能しなくなります。例えば、メールの送信の日時などはズレてしまいます。またEXCEL関数で
当日の日付を取得するTODAY()などの関数も、正常に使えなくなりますね。その他、ホスト(サーバ)と
交信したりするアプリケーション、サーバのDBからデータを読み込んでくるようなアプリケーション
(FILEMAKERなども含めて)は正常に使えなかったり、異常終了してしまったりします。

システムタイムを変更するのは、すごく簡単なプログラムです。VBならタイマーコントロールを使用
すればあっというまにできます。プログラム自作派の人はパソコン活用研究BASIC&EXCLE&VB達人道場
タイマーコントロールを参照して下さい。


あるいは、各アプリケーションの使用期限チェックの方法を解析して、レジストリの値を変更するとか、
というようなマニアックな方法もありますが、レジストリをしらべまくって値をいろいろ変えても、うまく
いかないことが多いようです。
うっかりして、期限切れになってしまった場合、レジストリに期限情報を記録するタイプのアプリケーション
では、システムの復元で、システムを期限前に戻してやると期限内に戻すことができたりします。
ただし、最近のアプリケーションはそんなに単純ではないので、システムの復元ではNGのことも多い
でしょう。どうしても使いたいという場合、確実な方法はリカバリーして体験版をインストールし直す方法
でしょう。これならほぼ確実だと思いますが、サーバで登録情報を管理するタイプのアプリケーションでは
それでもNGになる可能性が大です。そこまでして使いたい場合は、正規のライセンスを購入して使い
ましょう。毎回、こんな手間かけるのはばかばかしいです。
あくまで、忙しくて、評価する間もなく体験版の期限が来てしまった場合に、あと1,2回試してみたい、
超くやしいー、って言う時の奥の手です。


TopPage

 

inserted by FC2 system