スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
無料のILSpyを使ってソースを逆コンパイルする
C#やVB.NETでコンパイルされたプログラムは、exeやdllの形になります。
その中身は、C言語やC++とは違う、.NETのための「MSIL」という中間言語です。
基本的に、その中身を見ることはできません。
しかし、MSILは通常の場合さまざまな情報が残っているため、かなりの精度で逆コンパイルをして、ソースを取り出すことが可能です。
現在は、IL(中間言語を人にわかりやすくしたもの。機械語でいうアセンブラのようなもの)と、C#のみに変換できます。VBなどは非対応です。
この技術は、たとえば、ソースコードをなくしてしまった。この動作はどのようにしているのだろう、という技術的な欲求をかなえるために多々利用されてきました。もちろん、最適化で変更された部分や、コメントを復活させることはできませんが、十分処理を追うことはできます。その際に利用されたのが、.NET Reflectorです。
しかし、このソフトは経営的な問題から、有料のみになってしまいました。35$、3000円以下(修正:間違えて一桁多多く書いてありました)ですが、ちょっとしたことに使うだけなのに出来ればお金は払いたくないものです。また、外国とのとりひきなので、不安がある人もいるかもしれません。
そこで、紹介するのが、ILSpyです。ILSpyは、無料の.NETプログラミングソフト、SharpDevelopの一部として提供されています。このソフトはオープンソースなので安心して使うことができます。
まず、このソフトには最新版の.NETが必要になります。
VisualStudio2010などをインストールした場合には、すでにインストールされていると思われます。
インストールされていない場合、マイクロソフトのサイトからインストールしてください。
ILSpyは、SourceForgeからダウンロードできます。
ダウンロードページ
こちらで、最新のバイナリ(~Binaries.zip)を入手してください。
現在は、1.0の中のILSpy_1.0.0.737_M2_Binaries.zipが最新版のようです。
ソースがほしい人は、同ディレクトリの~Source.zipがソースファイルです。
ダウンロードしたら、それを解凍します。
解凍すると、画像のようなファイルが出てきます。
その中の、ILSpy.exeが本体です。ダブルクリックすると起動します。
インストールなどは不要で、その場で起動します。WPFを使って作られているようですね。
起動すると、このような画面になります。(もういくつか追加をしたため、画面と違っているかもしれません)

左側のツリービューに名前空間、クラス名、メソッドなどが表示されます。
それをクリックすると、右側に中身が表示されます。
System.Windows.Formsなどの初期からあるものを追加したければ、[File]=>[Open from GAC]を選択します。(ちなみに、メニューの中で「開く」だけ日本語ですw)
大量にあるので、上のテキストボックスに文字を入力すると絞り込めます。バージョン違いがいくつか出てくる場合もあります。

それを選ぶと先ほどのツリービューに追加されます。
詳しい使い方は、また後日。
注意
ソフトによってはそのような行為が禁止されていたり、暗号化されている場合があります。逆コンパイルして
えたソースを勝手に使うと、(特に商品では)著作権法違反などに当たります。使う場合は自己責任でお願いします。
<参考>
@IT - 無償の逆コンパイラ「ILSpy」を利用するには?[C#]
その中身は、C言語やC++とは違う、.NETのための「MSIL」という中間言語です。
基本的に、その中身を見ることはできません。
しかし、MSILは通常の場合さまざまな情報が残っているため、かなりの精度で逆コンパイルをして、ソースを取り出すことが可能です。
現在は、IL(中間言語を人にわかりやすくしたもの。機械語でいうアセンブラのようなもの)と、C#のみに変換できます。VBなどは非対応です。
この技術は、たとえば、ソースコードをなくしてしまった。この動作はどのようにしているのだろう、という技術的な欲求をかなえるために多々利用されてきました。もちろん、最適化で変更された部分や、コメントを復活させることはできませんが、十分処理を追うことはできます。その際に利用されたのが、.NET Reflectorです。
しかし、このソフトは経営的な問題から、有料のみになってしまいました。35$、3000円以下(修正:間違えて一桁多多く書いてありました)ですが、ちょっとしたことに使うだけなのに出来ればお金は払いたくないものです。また、外国とのとりひきなので、不安がある人もいるかもしれません。
そこで、紹介するのが、ILSpyです。ILSpyは、無料の.NETプログラミングソフト、SharpDevelopの一部として提供されています。このソフトはオープンソースなので安心して使うことができます。
手順1 : .NET Framework4.0をインストール
まず、このソフトには最新版の.NETが必要になります。
VisualStudio2010などをインストールした場合には、すでにインストールされていると思われます。
インストールされていない場合、マイクロソフトのサイトからインストールしてください。
手順2 : ILSpyのダウンロード
ILSpyは、SourceForgeからダウンロードできます。
ダウンロードページ
こちらで、最新のバイナリ(~Binaries.zip)を入手してください。
現在は、1.0の中のILSpy_1.0.0.737_M2_Binaries.zipが最新版のようです。
ソースがほしい人は、同ディレクトリの~Source.zipがソースファイルです。
ダウンロードしたら、それを解凍します。
その中の、ILSpy.exeが本体です。ダブルクリックすると起動します。
インストールなどは不要で、その場で起動します。WPFを使って作られているようですね。
起動すると、このような画面になります。(もういくつか追加をしたため、画面と違っているかもしれません)
左側のツリービューに名前空間、クラス名、メソッドなどが表示されます。
それをクリックすると、右側に中身が表示されます。
System.Windows.Formsなどの初期からあるものを追加したければ、[File]=>[Open from GAC]を選択します。(ちなみに、メニューの中で「開く」だけ日本語ですw)
大量にあるので、上のテキストボックスに文字を入力すると絞り込めます。バージョン違いがいくつか出てくる場合もあります。
それを選ぶと先ほどのツリービューに追加されます。
詳しい使い方は、また後日。
注意
ソフトによってはそのような行為が禁止されていたり、暗号化されている場合があります。逆コンパイルして
えたソースを勝手に使うと、(特に商品では)著作権法違反などに当たります。使う場合は自己責任でお願いします。
<参考>
@IT - 無償の逆コンパイラ「ILSpy」を利用するには?[C#]
- 関連記事
- ILSpy(3)逆コンパイルの結果 (04/23)
- ILSpy(2)基本的な使い方 (04/23)
- 無料のILSpyを使ってソースを逆コンパイルする (04/21)
コメント
管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
ご指摘ありがとうございます
本当だ、一桁多かったです^^;
30000円と3000円ではだいぶちがっちゃいますね。
もっと気をつけて記事を書かないと
30000円と3000円ではだいぶちがっちゃいますね。
もっと気をつけて記事を書かないと
ここをクリックしてコメントを投稿
トラックバック
http://tinqwill.blog59.fc2.com/tb.php/21-b0123849