I used to love .NET Reflector back in the day, but ever since Red Gate Software took over it has gone downhill dramatically. Now it forces me to update (which is absolutely ridiculous), half the time the update doesn't go smoothly, and it is increasingly hindering my productivity with each update. I am sick of it, and I am ready for something better. Is there a better disassembler?
Update:
List of vario开发者_如何学JAVAus alternatives mentioned in answers -
- ILSpy
- dotPeek
- JustDecompile
- DisSharper
- Mono Cecil
- Kaliro
- Dotnet IL Editor (DILE)
- Common Compiler Infrastructure
Also take a look at ILSpy by SharpDevelop. It's in early stages of development and they just made a release on the 24th of February. That in itself works pretty good for me. From their website:
ILSpy is the open-source .NET assembly browser and decompiler.
Development started after Red Gate announced that the free version of .NET Reflector would cease to exist by end of February 2011.
Update: JetBrains has released dotPeek, its free .NET decompiler.
Update 2: Telerik also has a free decompiler: JustDecompile.
JetBrains is going to add a decompiler to its ReSharper, and release a stand-alone decompiler too.
The good news is that we’re preparing a standalone binary-as-a-source application, i.e. a decompiler + assembly browser to explore whatever .NET compiled code is legal to explore. We don’t have any specific date for release, but it’s going to be released this year, and it’s going to be free of charge. And by saying “free”, we actually mean “free”.
Here is more information.
UPDATE: JetBrains has now released the product called dotPeek and it can be found here.
In my opinion, there are three serious alternatives to keep an eye on, all of which are free:
- ILSpy: This is from the same people who make the (also free) SharpDevelop IDE. As well as being free, it is also open source. An additional extension they are working on is the ability to debug decompiled code (something which the pro version of Reflector can do), which works surprisingly well.
- JustDecompile: A standalone decompiler from Telerik (announced today, currently in Beta).
- dotPeek: A standalone decompiler from JetBrains (available standalone as part of an EAP at the moment).
All of these approach the problem in slightly different ways with differing UIs. I would suggest giving them all a try and seeing which one you prefer.
Some others not mentioned here -
Mono Cecil: With Cecil, you can load existing managed assemblies, browse all the contained types, modify them on the fly and save back to the disk the modified assembly.
Kaliro: This is a tool for exploring the content of applications built using the Microsoft.Net framework.
Dotnet IL Editor (DILE): Dotnet IL Editor (DILE) allows disassembling and debugging .NET 1.0/1.1/2.0/3.0/3.5 applications without source code or .pdb files. It can debug even itself or the assemblies of the .NET Framework on IL level.
Common Compiler Infrastructure: Microsoft Research Common Compiler Infrastructure (CCI) is a set of libraries and an application programming interface (API) that supports some of the functionality that is common to compilers and related programming tools. CCI is used primarily by applications that create, modify or analyze .NET portable executable (PE) and debug (PDB) files.
The .NET source code is available now.
See this link or this
Or if you look for a decompiler, I was using DisSharper. It was good enough for me.
The latest version from Red Gate is 6.1. However the 5.1 version cannot automatically update to version 6 because there were changes to the Terms of Service, so instead you are redirected to the site to download the 6.1 version. This is mostly because of legal reasons as you can check in the following post:
Oi! What's going on with the .NET Reflector update mechanism?
After you manually update to 6.1 you will no longer experience any problems.
Instead of using the autoupdater, we just set the properties of the EXE file to read-only. That way it doesn’t delete the file.
I am not sure what you really want here. If you want to see the .NET framework source code, you may try Netmassdownloader. It's free.
If you want to see any assembly's code (not just .NET), you can use ReSharper. Although it's not free.
9Rays used to have a decompiler, but I haven't checked in a while. It was not free, I remember...
There is also a new one (at least for me) named Dis#.
精彩评论