夕暮ログ

C#やJavascript、最近はAndroidなんかも好きなtinqのブログ。「夕暮れログ」

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

無料のILSpyを使ってソースを逆コンパイルする

C#VB.NETでコンパイルされたプログラムは、exeやdllの形になります。
その中身は、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)
大量にあるので、上のテキストボックスに文字を入力すると絞り込めます。バージョン違いがいくつか出てくる場合もあります。
GACから追加
それを選ぶと先ほどのツリービューに追加されます。
詳しい使い方は、また後日。




注意
ソフトによってはそのような行為が禁止されていたり、暗号化されている場合があります。逆コンパイルして
えたソースを勝手に使うと、(特に商品では)著作権法違反などに当たります。使う場合は自己責任でお願いします。



<参考>
@IT - 無償の逆コンパイラ「ILSpy」を利用するには?[C#]
関連記事

コメント

管理人のみ閲覧できます

このコメントは管理人のみ閲覧できます

ご指摘ありがとうございます

本当だ、一桁多かったです^^;
30000円と3000円ではだいぶちがっちゃいますね。

もっと気をつけて記事を書かないと

ここをクリックしてコメントを投稿

非公開コメント

トラックバック

http://tinqwill.blog59.fc2.com/tb.php/21-b0123849

« next  ホーム  prev »

プロフィール

tinq tinq(もしくはTinqWill)

Sky  For   Every 改装予定

プログラミングお勉強中の高校生。月一くらいは更新したい

最新記事

カテゴリ

月別アーカイブ

検索フォーム

最新コメント

リンク

最新トラックバック

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。