1

Microsoft Visual Studio 2012を使用しており、ネイティブC++でアプリケーションを作成したいと考えています。.NETリフレクターなどのツールを使用してアプリケーションをソースコードに逆コンパイルしたくないため、Manged Code(.NET)を使用したくない理由ですが、それでも使用できると便利です。アプリケーションのUI(CLR Windowsフォーム)。

しかし、Win32プロジェクトにUI(CLR Windowsフォーム)を追加すると、次のメッセージが表示されます。

メッセージ

これは、これからすべてのプロジェクトがネイティブコードとしてコンパイルされず、.NETリフレクターなどのツールを使用してアプリケーション全体を逆コンパイルする可能性があることを意味しますか?

または、「混合」(ネイティブコード+マネージコード)プロジェクトであり、UIを担当する.NETリフレクターなどのツールを使用してアプリケーション全体を逆コンパイルする機能はありませんか?

PSはい、どのアプリケーションでも逆コンパイルできることは知っていますが(!!!)、つまり、.NETベースのアプリケーション用の逆コンパイルツールについて質問しています。.NET Reflectorを使用すると、.NETアプリケーションから「元のソースコードを取り戻す」ことができます。だから私の質問は、このアプリケーションから「元のソースコードを取り戻す」ことは可能ですか、それとも何らかの形で「混合」コード(管理された+ネイティブ)であり、元に逆コンパイルする可能性はありませんか? .NETリフレクターのようなツールを使ったソースコード?

4

1 に答える 1

5

実行可能ファイルにシンボルテーブルがない場合に、メナスを「元のソースに戻す」ために「逆コンパイル」する場合、これは不可能です。

「逆コンパイル」が「元のコードと意味的に同等で、実行可能プログラムにコンパイルして戻すことができるユーザー変更可能なコードを取得する」ことを意味する場合、常に可能です(マシンコード自体を直接変更する場合でも、それを理解している人がいます! )。これがどのように多くの聴衆に理解できるか、それはすべて別の話です。

マーケティングの一般法則では、「コピーできないのは、決して売られないものだけです!」と書かれています。これは、ソフトウェアの物理的な性質に関連する問題です。それからの回避策はありません(別の宇宙のために働くことを除いて)

于 2013-01-09T15:57:03.317 に答える