そうです、私はデスクトップアプリケーションのライセンス検証コード、たとえばメソッドについて話していますbool ValidateLicense(string licenseCode)
。もちろん、どのような保護スキームも、熟練した断固としたクラッカーによってリバースエンジニアリングできます。ただし、プログラミングの基本的な知識を持っている人なら誰でも、Reflectorを使用して数分でkeygenを作成できないようにしたいと思います。
考えられるアプローチ
難読化。私の理解では、難読化はパフォーマンスのオーバーヘッドを引き起こし、(正当な)デバッグを妨げる可能性があります。では、選択したメソッドのみを難読化できるツールはありますか?
メソッドを生成されたアセンブリまたはアンマネージDLLに移動します。しかし、これは単にDLLを置き換えるための招待状ではありませんか?これを防ぐ方法はありますか(攻撃者にとっては少し難しくします)。
その他?
PS:質問は明らかにリバースエンジニアリングから.NETコードを保護することに関連していますか?そこから考えを実践に移そうとしています
アップデート
1.最初の難読化ステップは、検証メソッドの名前を変更することです。(ありがとう、ジョナサン)
2.アプリケーションがWin32APIメソッドを使用していると仮定すると、アンマネージDLLを介して呼び出しを再ルーティングし、それによってアプリケーションの不可欠な部分にすることができます。メソッドのシグネチャ(名前の変更、パラメータの交換など)をいじると、これがわかりにくくなります。あなたは生来の欠点が正当化されると思いますか?
3.ここに属する検証方法を配布しないでください。サーバーに保存してリモートで呼び出します。つまり、オンライン検証を使用します(ありがとう、David Hedlund)