2011-09-12 3 views
21

.NET DLLのコードを変更する必要があります。 .NETリフレクタでコンパイル可能なDLLを参照できますが、DLLのコードを変更することはできません。 .NET Reflectorを使用すると、コードを逆コンパイルしてハードディスクに保存することができますが、コードを再コンパイルするとエラーが発生します。dotnet dllデコンパイルとコードの変更

いくつかのコードはバイナリ形式でデコンパイルされていますが、ほとんどのコードはc#でデコンパイルされています。 DLLを変更して再コンパイルするツールはありますか?

  • ILSpy
  • DisSharp
  • ReflexilプラグインでReflector7.1
  • Spices.Net.Suite.5.8
  • :ここ

    は、私はDLLをコンパイルしようとするために使用されるツールです

  • .NET 1.0.0を展開する
  • devextras.codereflect
  • dotPeek-1.0.0。 2545
  • intellilock
  • JustDecompile_BETA_2011.1.728.1

残念ながら、DLLのコードを再コンパイルするのに最適なソースコードを与えるツールのどれも。

+0

どのようなエラーが表示されますか? –

+0

私が知っている限り、ドットネットフレームワークライブラリのソースコードを入手する簡単な方法があります。 Scott Guによる記事を参照してください。http://weblogs.asp.net/scottgu/archive/2007/10/03/releasing-the-source-code-for-the-net-framework-libraries.aspx –

+0

.Net Frameworkアセンブリやその他の.Net dllのソースコードを入手するには? – Polyfun

答えて

8

私はDLLを再コンパイルするのに成功していませんでした。より良い方法はReflectorとReflexilプラグインを使用することです。 .NETアセンブリを構成するILコードについての知識は少し必要ですが、ReflexilはOPコードを記述するうえで非常に役立ちます。私はPowerShellのコマンドレットのヘルプエディタを変更するために使用する方法についての私のブログに通じ少し散歩を持っている:http://csharpening.net/?p=348

9

次のコードが動作している:

"C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\ildasm.exe" original.dll /out=code.asm 
echo Here changes to code.asm should be done. 
C:\Windows\Microsoft.NET\Framework\v4.0.30319\ilasm.exe /dll code.asm 

コードの変化が小さいことがあるのであれば、アセンブリコードを直接変更することで実現できます。単純なメソッドをコンパイルして逆アセンブルして、アセンブリコードがどのように見えるかを調べることができます。アセンブリファイルの中に追加のメソッドを置くこともあまりにも難しくありません。

もちろん、コード解析は、アセンブリコードではなくソースコードを表示するilspyのようなツールを使用して行う必要があります。

ここで使用されるツールは、Windows SDK(ildasm)と.netフレームワーク(ilasm)に由来します。