VC++6.0でソフトを作り、インストールCDを作りました。
このソフトを1台だけのPCでしか起動できないようにする為にはどのような方法があるの
でしょうか?
ネットで調べたらUSBのプロテクトキーがあるのですが、プログラムで規制は出来ないの
でしょうか?
マシン固有の識別子があれば、インストール時にそいつを
打ち込んでおいて起動時に一致するかを確認します。
マシン固有の識別子としては、たとえばNetwork-cardのMACアドレスや
HardDiscのIDなど。
# どっちも交換したら再設定となりますけども。
起動するパソコン(PC)を規制するとはどういうことでしょうか?
1 複数台のパソコンにインスト-ルすることは許すが動作させるのは1台に限る
2 CDからインストールして動作させることができるのは1台に限る
の2つが思いつきます(ほかにあるかもしれません)
>プログラムで規制は出来ないのでしょうか?
やるだけ(工夫すればするほど)無駄というのが私の考えです
あなたのおっしゃるUSBのプロテクトキー(ドングルと呼ぶことが多いと思いますが)
も起動時に検査するのなら起動後に抜いてしまえば別のパソコンにさすことで
複数台での起動は可能です。抜いたことを検出するか定期的にドングルの存在確認
をするかしないと1台に限る事はできません
決定的なことはドングルかポート(ドングルの差口)が壊れたらアプリケーションが
使えないということです(代りのドングルを送るまでの数日間の損害を誰が補償
するのでしょうか?)
プログラムで規制するというのはどういうことを考えているのかよく分からないので
すが、(ドングルなどを使わないで)純粋にプログラムだけでということならパソコン
を交換する場合も含めて考えないと不便で使えないものになってしまう可能性がある
事も考えてみてください
さまざまな方法が試されていますがどれも利点欠点があるようです。
1.製品メディアキー
製品を供給したCDやUSBが挿入されていないと動かないタイプですね。
2.ドングル
既にしまさんが紹介済みですね。USBに差し込むハードウエアキーです。
3.MACロック
えぴすてーめーさんが説明している方法です。
4.ネットキー
ネットワーク経由でキー確認するタイプです。
5.法的拘束
使用許諾にうたう方法です。製品には著作権が自動的に発生し、
その著作物を利用するには著作者の提示条件に対する受諾が必要になります。
などなど。
私も色々とコピーガード絡みで調べたり、試したりした事があります。
で、結論としては、しまさんと同じで複雑にしても結局は無駄になると
考えています。政治的な問題もあって全くノーガードと言うわけにも
行かないケースが有ったりしますけれど、本当にコピー不可という所まで
拘ってしまうと費用対効果的に意味がなくなってしまうケースが多いです。
ソフトウエアでやろうとする場合、ハッカーがその気になればなんとか
出来てしまうのが常ですからいたちごっこになります。
絶対に破れないプロテクトと言うのは無理があるので
そこに心血注ぎ込んでも結局は無駄になるケースは多いでしょう。
CD-ROMやDVD-ROMのプロテクトに関しても同じ事が言えますね。
ノーガードではコピーを暗黙の内に認めていると取られてしまう可能性が
あるのでコピーは駄目という意思表示を見せる為に費用が余りかからない
方法でガードをするようにしておいて、大規模な被害が出るような悪質な
物に関しては法的に対処するというのが多分現実的な対応なのだと思って
います。
もっとも、これは会社レベルの話なので個人で作成するアプリだと
考え方も変わってくるかもしれませんけれど。
ちなみにそれなりの効果を得られるような方法を
お手軽に実現しようと思ったらそれなりのライブラリなりを
購入して使用する事になると思いますけれど、
効果とコストの関係を考えると強固な物は値段もそれなりに
高いので強固にする必要が認められないようなケースでは
採用しない事が多いです。
前の書込みにも書きましたが、コピーは認めないという意思表示として
組み込むのであれば、OSの標準的な操作で簡単にコピーが出来ない程度の
ガードでも十分意味があります。
それ専用のツール等を利用している時点でコピーガードを破ろうと言う
意思を持って行動していると判断できますからね。
自分達で開発すると場合でもあまりコストが掛からない方法で
簡単にはコピーできない程度の効果が上げられれば良しとすると
思います。そこに費用をつぎ込んでも意味が無いと言う判断に
なるわけです。
みなさんありがとうございます。
すっごく難しく悩ましい問題ですね。
私もプログラムではパスワードやレジストリ読取、マシンタイムでの使用期限など色々考
えたのですがどれもちょっとパソコンに詳しい人が工夫すればどのパソコンでも出来てし
まいます。
パソコンを変えたり、ドングルの故障など保守面も考えると頭がいたいです。
色々なパターンを想定して決めたいと思います。
もしかしたら他にも案が聞けるかもしれないので二日ぐらいは寝かせてその後「解決」に
したいと思います。
他にも方法があれば教えていただけると助かります。宜しくお願い致します。
ソフト本体はサーバにもたせて、頒布するのはクライアントソフトとID・パス
サーバにログインしてないとソフトが動かないようにする
みなさん色々なご意見ありがとうございました。
とても勉強になりました。頑張ります!
また、相談の際にはお力をお貸しください。本当にありがとうございました。
起動時に社内のネットワーク内にブロードキャストで
メッセージを送信して応答があったら起動させないのも手ですね。
インストールは出来るし、どこでも使えるけど同時起動は
出来ないと。
相手からの送信をブロックするソフトもあるので
それを使われたら回避できるので、まぁ知識程度に。