私の .NET アプリの 1 つで、ライセンス キーを使用してプログラムをライブラリに対して "検証" する必要があります。
しかし、私のアセンブリを覗いた人は誰でもキーを取得できます...
これは私には影響しませんが、ライブラリの作成者は気になります。
私は彼/彼らの鍵を「漏らして」、彼/彼らにこのような損失を引き起こしたくありません...
データを保護するために使用できる無料のツールはありますか?
他のコードは本当に気にしません... キーは重要です。
私の .NET アプリの 1 つで、ライセンス キーを使用してプログラムをライブラリに対して "検証" する必要があります。
しかし、私のアセンブリを覗いた人は誰でもキーを取得できます...
これは私には影響しませんが、ライブラリの作成者は気になります。
私は彼/彼らの鍵を「漏らして」、彼/彼らにこのような損失を引き起こしたくありません...
データを保護するために使用できる無料のツールはありますか?
他のコードは本当に気にしません... キーは重要です。
それをライブラリに渡す必要があり、ライブラリを制御できない場合は、とにかく多くのことを行うことはできません。Reflector ユーザーを妨害するために好きなだけコードを難読化できます (ただし、Reflector VSPro は少なくとも簡単ではありません) 。Crack.NETを使用してメモリを覗き、そこから取得します。
たとえば、公開/秘密鍵、 SecureString、DPAPIを使用したり、サーバーに鍵を保存するために Web 呼び出しを要求したりするなど、安全なメカニズムを提供するのはライブラリ作成者の仕事でした。
私が思い出せる唯一の方法は、コードを ubfuscating するための dotnetfuscator ですが、これは専門家によるリバース エンジニアリングの影響を受けません。このトピックは、C# 開発者にとって厄介な点です。これを行う唯一の実際の方法は、.net を使用しないことです (これはまったく答えではありません)。
質問211849にリストされている他のいくつかがあります
私も同じ状況です。キーは私のコードに存在します。コードを難読化しません。これは、ユーザーの大部分がプログラマーではなく、コードを逆コンパイルしてキーを取得する方法を知らないためだと思います。私が懸念していた場合、上記のように難読化すると思います
私はこれを別の方法で見ます。
ライブラリの検証にライセンスが必要な場合。次に、アプリケーションでライブラリを配布するための適切なライセンスを持っていますか?
もしそうなら、鍵を適切に保護する方法を教えてくれるのは図書館の提供者次第だと思います。
それ以外の場合は、コード難読化ツールを使用して最善を尽くしてください。
これと他のことを行う別の製品: RedGate の SmartAssembly (無料ではありませんが)...
絶対的なセキュリティはありません - 特に。JITted コード (IL/.NET や Java など) を使用...
文字列定数には注意してください - " " 文字列に置き換える必要がありstatic readonly
ます... そうしないと、"難読化/暗号化" できません...
Dotfuscator がこれを行います。Visual Studioにパッケージされていると思います-調べてください。
私はそれについて心配しません。あなたが唯一の顧客ではない場合、難読化されていないコードを介して他の誰かがライセンス キーを漏洩している可能性があり、あなたの努力は時間の無駄になります。
MSDN にコード難読化ツールのリストがあります。