この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 20394|答える: 0

[分解] c# ディスアセンブル Tutorial.net プログラム逆コンパイルツール(ILSpy)

[リンクをコピー]
掲載地 2015/06/06 11:09:21 | | | |
ILSpyのデコンパイルツールの使用。 ただし、ILspyは.NET Framework 4.0のインストールが必要です。 ILspyはdllファイルをC#またはVB言語に変換できます。 ILspyは単一のファイルを.csファイルまたは.vbファイルとして保存でき、ファイルが多ければプロジェクトファイルとして保存することも可能です。 C#文はILspyによってデコンパイルでき、yield return文やλs式のデコンパイルもサポートできます。

以前は.NETライブラリの情報を見るためにReflectorを使っていましたが、2011年2月以降、Reflectorは有料ソフトウェアへ移行し、フリーソフトウェアを愛する開発者たちは自分たちでデコンパイルしたソフトウェアの開発に移っています。 だからILspyは運によって生まれたのです。 ILSPYはリフレクターを置き換えるオープンソースツールであり、リフレクターに似たコードをデコンパイルします。

SharpDevelopもまた、唯一の存在です。 .NETのオープンツールで、オープンソースです。 また、Visual Studioの書き換えのようなかなり良い機能も備えています。 最新バージョンでは、Visual Studioのソリューションセキュリティファイルおよびプロジェクトファイルのサポートが直接追加されました。 ILSpyはSharpDevelopグループのデコンパイラツールであり、こちらもオープンソースです。そのデバッガとデコンパイラについては以下に説明します。


ILspyのインターフェースのスクリーンショット


ILSpyのインターフェースはReflectorに似ており、ツリーコントロールが左側にアセンブリとその型を示し、右側に対応するソースコードを表示します。 基本的なデコンパイル機能はReflectorと比べて悪くなく、時にはReflectorではデコンパイルできないアセンブリ(暗号化のため)に対してILSpyで逆コンパイルできる場合もあります。

ILspyは.NET Framework 4.0のインストールが必要です。ILspyにはいくつかの一般的な機能があります

基本的な型の逆コンパイル関数が利用可能です

現在は、VBではなく、C#やIL言語へのソースコードのデコンパイルのみがサポートされています。

レンダリング図は以下の通りです:

ILSpyのコードセーブ機能

タイプをクリックすると、ファイル>セーブコードを選択すると現在のタイプがデコンパイルされ、指定されたファイルに保存されます。アセンブリを選択すると、セーブコードはプロジェクト(csproj)ファイルとして保存され、そのすべてのタイプがプロジェクトに追加されます。


ILSpyのデバッガ機能

ここでのデバッガはVisual Studioを指していませんデバッガのレベルですが、アセンブリのデバッガを指します。 Reflectorには、サードパーティ型ライブラリをデコンパイルせずにデバッグできるアドインがあり、Visual Studioに直接接続できます。

ILSpyにもこの機能があり、サードパーティアセンブリを直接デバッグできる2つのオプションがあります

サードパーティ製のライブラリが実行ファイルであれば、Debug an executableでプログラムを起動できます。

サードパーティ型ライブラリがアセンブリ(DLL)であれば、Attach to running applicationでアセットしてアセンブリのデバッグを始めることができます。


上の画像からもわかるように、その使い方はソースコードのデバッグと同じです。 変数の値を監視し、ブレークポイントを設定し、プログラムがこのポイントに到達したときに、フォームを監視することで変数の値を観察できます。

両者の違いは、Attachが実行中のアプリケーションにデバッグされる際、コンパイラによってコードが最適化された場合、モニターはその値を取得できない点です。

画像に示されているように、デバッグ対象の変数numの値はコードが最適化されているため表示できません。 公式に推奨されている方法は、実行ファイルをデバッグすることです


Visual Studioで.NETのソースコードをデバッグするのと同様に、ステップイン、ステップオーバー、コンティニューを操作すると、ステータスバーにスタンバイ、実行中、デバッグ中が表示されます。

アセンブリのC#/VB形式でのデバッグに加え、下図のようにILコードでもデバッグ可能です

ILSpyのデバッガはプラグインとして存在しますので、必ずILSpy.Debuggerプラグインを含めてください。


でもデバッグは問題です。 .NETアセンブリはPDBファイルを必要としなければなりません。 しかし、ILSpyはPDBファイルを生成せず(PDBファイルは生成されません)、またウェブアプリケーションやウェブサービスのデバッグ ASP.NET できません。






先の:>>募集<<
次に:深圳連天下科技有限公司
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com