2017-04-08 1 views
1

私はC#で書かれたライブラリを持っています。私はそれをDLLとして配布したい。しかし、.NETは快適な逆コンパイルを可能にするので、アルゴリズムは簡単に盗難される可能性があります。DLLのソースコードを保護する

私はC++で書き直すことができますが、私は.NETを初めて使用しています。ですから、主な問題はC#へのインターフェイスを書くことでしょう。ライブラリはそれほど大きくなく、スレッド、ネットワーク、および数学を使用しています

逆アセンブルでしか作成できないDLLを作成する方法はありますか?あるいは、私はC++ですべてを書いて、C#へのインターフェイスを提供する必要がありますか? C++よりもC++を逆コンパイルするのがずっと難しいですか?

+1

あなたは 'obfuscator'を探しています。 – cubrr

+0

@cubrrこれはC#で書かれたライブラリを保護するのに十分でしょうか? C++やそのような 'obfuscator'ツールが改善されるでしょうか? – Leonid

+1

Obfuscatorはメソッド、変数、フィールドなどの名前をwierdの名前に変更するだけで、リバースエンジニアリングすることは難しいでしょう。私はあなたのコードを特許し、クラウドでそれをホストするべきだと思います。もちろん、難読化されたDLLをクラウドでホストすることもできます。 –

答えて

1

アルゴリズムの知的財産が本当に心配な方は、いくつかの選択肢があります。

1)特許のアルゴリズム。私はハウルスを聞くことができますが、それは法的な方法で知的財産を保護する方法です。

2)アルゴリズムにDLLをユーザーに与えないでください。クラウドでアルゴリズムをホストし、顧客がその方法でアクセスできるようにします。

残りの一部はわかりません。 C++を書くことはできますが、C#へのインターフェイスの記述方法はわかりません。 COMを使用します。 C#はCOMライブラリを使用できます。または、C++で関数をエクスポートし、PInvokeを使用してC++ DLLを呼び出す.NET相互運用ライブラリを作成します。

2

エンドユーザーに配布されるすべてのものをリバースエンジニアリングすることができます。あなたは努力の量を増やすことができますが、いつでも可能です。あなたのアルゴリズムが本当に重要で、独自の価値があり、貴方は依然としてアプリケーション設計を行っており、アルゴリズムの結果がパフォーマンス上重要ではないか、またはチャンクされている可能性があります。次に、計算にアクセスするための最も強力な業界標準保護のいくつかを使用することができます。

+0

"エンドユーザーに配布されるすべてのものをリバースエンジニアリングすることができます" - はい、わかります。しかし、C++でライブラリを書き直す価値はありますか? – Leonid

+1

@レオニダスあなたは私たちにその質問を助けるための十分な情報を与えていない。一般的に、コンパイルされたC++コードは、難読化されたC#より理解を深めるのが難しくなりますが、C++でのコードの書き換えは、使用したコード機能、C++による快適さ、アルゴリズムコードのサイズと要件によって、 – wllmsaccnt

+0

実際、私はC++の方がはるかに快適ですが、.NETには初めてです。ですから、主な問題はC#へのインターフェイスを書くことです。ライブラリはそれほど大きくなく、スレッド、ネットワーク、数学を使います。 – Leonid

関連する問題