0

私はC#.Net 2.0を使用してWindowsアプリケーションを作成しましたが、ソースコードを非表示にする何かを実行したいので、リファクタリングツールを使用するとソースコードが表示されません。dotfuscatorを使用しましたが、関数名が変更されただけで、すべてのソースコードが変更されたわけではありません。

更新:キーを非表示にするためではなく、コードの動作を非表示にするために、ソースコードを非表示にします。

ありがとう、

4

7 に答える 7

3

ILは定義上、体内に残っているものに関して非常に表現力があります。次のいずれかを行う必要があります。

  • より良い(より高価な)難読化ツールを見つける
  • キー ソースを管理下に置いてください (たとえば、Web サービスを介して、キー ロジックがクライアントに存在することはありません)。
于 2009-02-13T12:50:41.677 に答える
2

ソースコードはあなたのものであり、明示的に提供しない限り、コンパイルされたバイナリのみを提供することになるでしょう。

現在、これらのコンパイル済みバイナリは IL コードです。誰かが IL コードを "逆コンパイル" してソース コードにリバース エンジニアリングするのを防ぐには、IL コードを難読化する必要があります。これは、コード難読化ツールを使用して行われます。市場にはたくさんあります。

あなたはすでに dotfuscator でこれを行っていますが、すべてのソース コードではなく、関数名のみが変更されたと言います。Visual Studio に付属の dotfuscator エディションを使用しているようです。これは事実上「コミュニティ エディション」であり、「プロフェッショナル エディション」の機能のサブセットのみが含まれています。コミュニティ エディションとプロフェッショナル エディションの機能の比較表については、このリンクを参照してください。

コードをさらに難読化する必要がある場合 (特に、Reflector などのツールを使用する人から保護するため)、Dotfuscator のプロフェッショナル エディション、または同様の機能を含む別のコード難読化製品が必要になります。

于 2009-02-13T13:08:06.097 に答える
1

SmartAssembly を試す http://www.smartassembly.com/index.aspx

于 2009-02-13T12:59:25.493 に答える
1

人々があなたのバイナリを手に入れるとすぐに、それをリバース エンジニアリングできます。バイトコード (C# および Java) にコンパイルされた言語では簡単ですが、CPU 固有のバイナリにコンパイルされた言語では困難ですが、常に可能です。それに直面。

于 2009-02-13T12:56:34.220 に答える
0

難読化ソフトウェアがメソッドの内容を隠すために実行できる長さには制限があり、正確性 (そして確かにパフォーマンス) に影響を与えずに内部構造を根本的に変更することは非常に困難です。

多くの小さなメソッドを含むコードは、難読化されると理解するのがはるかに難しくなる傾向があることに注意してください。

一部の難読化ツールは、どのターゲット言語でも表現できない構造の生成を許可します。たとえば、CIL で許可されるすべての操作のセットは、c# や C++/CLI で表現できるものよりもはるかに多くなります。ただし、これを有効にするには明示的な設定が必要になることがよくあります (問題が発生する可能性があるため)。これにより、逆コンパイラが失敗する可能性がありますが、最善を尽くして回避するものもあります (おそらく、処理できない il をインライン化します)。

アプリで pdb を配布すると、シンボルが追加されるため、さらに多くのことが推測できます。

于 2009-02-13T12:50:43.110 に答える
0

シンボルの名前を変更するだけでは、アプリをリバース エンジニアリングするのに十分ではありません。また、制御フローの難読化、文字列の暗号化、リソース保護、メタデータ削減、反射防止防御なども必要です。これらすべてをサポートするCrypto Obfuscatorを試してみてください。

于 2009-11-20T09:19:18.880 に答える
0

アプリケーションのセットアップ プロジェクトを作成し、ソフトウェアのように友人のコンピューターにセットアップをインストールします。Microsoft Visual Studio を使用してセットアップ プロジェクトを作成するには、5 つの手順があります。

ステップ 1: サンプル .Net プロジェクトを作成します。このプロジェクトを「TestProject」と名付けました。その後、プロジェクトをリリース モードでビルドします。ステップ 2: ソリューションを右クリックして新しいプロジェクトを追加し、セットアップ プロジェクトを選択して、「TestSetup」という名前を付けます。ステップ 3: セットアップ プロジェクトを右クリックしてプライマリ出力を追加し、表示されたプロジェクトを選択します。ステップ 4: セットアップ プロジェクトを右クリックし、[表示] -> [ファイル システム] -> [アプリケーション フォルダ] を選択します。必要なものをインストールフォルダーにコピーします。ステップ 5: プロジェクト フォルダに移動し、ここで setup.exe ファイルを取得できるリリース フォルダを開きます。「TestSetup」ファイルをダブルクリックして、プロジェクトを自分と他のコンピューターにインストールします。

于 2013-12-10T11:34:34.397 に答える