23

.NET DLL のコードを変更する必要があります。.NET Reflector で DLL をコンパイルするとコードが表示されますが、DLL のコードを変更することはできません。.NET Reflector を使用して、コードを逆コンパイルしてハードディスクに保存しましたが、コードを再コンパイルするとエラーが発生します。

バイナリ形式で逆コンパイルされるコードはほとんどありません。C# で逆コンパイルされるコードはほとんどありません。DLL を変更して再コンパイルするツールはありますか?

DLL を逆コンパイルするために使用したツールは次のとおりです。

  • ILSpy
  • ディスシャープ
  • Reflector7.1 Reflexilプラグイン付き
  • Spices.Net.Suite.5.8
  • .NET 1.0.0 を展開する
  • devextras.codereflect
  • dotPeek-1.0.0.2545
  • インテリロック
  • JustDecompile_BETA_2011.1.728.1

残念ながら、DLL コードを再コンパイルするための完全なソース コードを提供するツールはありません。

4

2 に答える 2

10

次のコードが機能しています。

"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) からのものです。

于 2014-09-09T11:04:16.303 に答える
8

DLLの再コンパイルでの成功は限られています。それを実行するためのより良い方法は、ReflectorとReflexilプラグインを使用することです。.NETアセンブリを構成するILコードについてもう少し知識が必要ですが、ReflexilはOPコードの記述に優れています。PowerShellコマンドレットヘルプエディターを変更するために使用した方法について、ブログを少し見ていきます:http ://csharpening.net/?p=348

于 2011-09-12T13:56:15.813 に答える