2009-04-30 4 views

答えて

11

アプリケーション全体がクライアント側である限り、クラックから保護することは完全に不可能です。アプリケーションをクラックされないように保護する唯一の方法は、(例えば、オンラインゲームのような)機能するためにサーバーに接続する必要があることです。

でも、サーバーをシミュレートしてプログラムにダミーの確認を送信して、実際の正当なサーバーと話していると思うようなクラックがいくつか見られました(この場合、私は "コールホーム"検証戦略、ゲームではない)。

また、意志がある場合は、方法があります。誰かがあなたの製品をひどく欲しがっていると、彼らはそれを手に入れます。そして最終的には、あなたの正直な顧客に合併症を引き起こす可能性のある保護を実装し、クラッカーに挑戦するだけです。

また、このトピックに関する詳細な説明については、this threadを参照してください。

-1

ごくわずかな顧客がいない限り、これはほぼ不可能なミッションのようです。

ちょうど考慮してください - あなたは今までにクラックされていないWindowsのバージョンを見たことがありますか?

3

あなたのコードを難読化するためにサードパーティ製のツールがあります。 Visual Studioには1つが付属しています。

しかし、まず、なぜあなたが気になるのか真剣に考える必要があります。あなたのアプリが十分に良く、クラックされたくないほど人気が​​あれば、それはあなたの努力のすべてにかかわらずあります。

1

.NETコードのものは、.NET Reflectorのようなツールを使用してリバースエンジニアリングするのは比較的簡単です。コードの難読化は役に立ちますが、まだ解決することは可能です。

-1

あなたがそれを保護する方法を発明した場合、誰かがそれを解読する方法を発明することができます。人々がそれを「違法」な方法で使用するときには、それを認識するために十分な努力をしてください。そのリスクを超えたほとんどのものは時間の無駄ですo)

1

高速なソリューションが必要な場合(ただし、クラッキングされないという約束はありません)、 ThemidaStar Forceなどのツールの場合これらはどちらも有名な保護シェルです。

1

本当に不可能です。頻繁にパッチをリリースし、暗号化の塩を変更してください。しかし、あなたのソフトウェアが誇りに思うならそれは本当に良いはずです:-)

6

多くの答えは、難しくする方法ではなく、不可能にする方法だったという点を忘れているようです。

難読化は、そのプロセスの最初の重要なステップです。コードが難読化されていない場合は、さらに処理が容易になります。

その後、あなたが避けようとしていることに少し依存します。ライセンスなしでインストールしますか?タイムド・トライアルは爆発する?追加料金を支払うことなくソフトウェアの使用量を増やす(たとえば、より多くのCPUで)

仮想マシンの今日の世界では、長期的な反クラッキング戦略には家庭の呼び出しが必要です。環境は元気にするのは非常に簡単です。つまり、ソフトウェアを使用するには元の状態に戻らなければならない場合、ソフトウェアの種類によっては役に立たないと言われています。それがあなたのソフトウェアのタイプならば、時機を越えた試行を追跡するために物事をレジストリに入れるあまりにも不明瞭な場所があります。そして、一般的に、偽造するのは難しいライセンスキースキームです。

ただし、注意すべきことの1つは、あまりにも派手ではありません。ほとんどの場合、ライセンススキームはQAを最小限に抑え、合法的な顧客がロックアウトされる生産に重大な問題が発生します。とにかくあなたは一銭も支払っていない可能性が高いでしょう。ここで

3

はいくつかのヒントではなく、完璧ですが、多分助けることができる:

  • お使いのソフトウェアは、いくつかのサーバに接続する場合はどこかに今してプロトコルを変更頻繁
  • お使いのソフトウェアを更新します。いくつかのアルゴリズムに応じて数多くのプロトコルを使用することもできます。
  • ソフトウェアを実行するたびにダウンロードするサーバーにソフトウェアの一部を格納する
  • dllのcrcチェックを行いますあなたが読み込んだie認可されたdllののためのcrcのリストを持っている
  • あなたの主なアプリケーションを見落とし、あなたの他の依存するdll/

残念ながら、あなたのソフトウェアをコピープロテクトするのに費やす分、機能性に費やされることは少なくなります。

別のアプローチは、あなたのソフトウェアを安く販売することですが、頻繁に、安価なアップグレード/アップデートを行うことです。