.NET Reflector Add-ins
NET Reflector has a comprehensive add-in model, with an API that lets you extend the tool to suit to your exact needs. The API also lets other tools take advantage of .NET Reflector’s unparalleled decompilation and disassembly abilities to complement their own functionality. The best thing is, building your own add-in is painless.
Below are some great add-ins and tools which we recommend you try out, and there are more you can download. We’ve done our best to find some of the best add-ins around, but you can still recommend others which you think we should feature. Or better still, why not write you own? We have links to some great tutorials to get you started:
.NET Obfuscation Checker
In addition to the above add-ins, Red Gate has come up with the .NET Obfuscation Checker, a tool designed to work with .NET Reflector.
The Obfuscation Checker scans a directory and inspects the assemblies and .exe files inside. It shows you which DLLs and executables are there, the references for each, and information about their obfuscation state and security level.
The Obfuscation Checker uses .NET Reflector to decompile the assemblies, so you can quickly see the code in a DLL or .exe file. This lets you see what's obfuscated, and what isn't. For example, you can see how readable type names are and how easy it is to understand control flow.
SmokeTest lets you invoke any member of a class interactively. An indispensable tool for anyone involved in developing, testing and managing Windows .net projects.
Created by Wesley Steiner
The SmokeTest panel will pop-up when you select a class in Reflector. The panel displays all static members of the class arranged by Constructors, Methods, Properties and Fields. Selecting a member presents a list of arguments you can edit as input. Invoking the member calls the function and returns the resulting instance then “drill-down” into the instance and repeat the process for all members, not just the static ones.
- Simple and intuitive interface to invoke Constructors, Methods, Properties and Fields.
- Enter built-in type arguments (int, char, string etc.) as text.
- Create and edit instances of concrete classes as arguments.
- Displays time statistics for each invoke.
- Choose from a tree of derived types when creating an instance of a reference Type argument
- Drill-down into the return object and SmokeTest it
Diff lets you compare two assemblies and view the differences between them. It does exactly what the name suggests, and does it well.
Created by Sean Hederman
Palantir’s Reflector.Diff performs high speed differencing between assemblies to help you visualise the changes between them.
- Choose Framework version to compare the assembly to (must be installed on the machine)
- Browse for a specific assembly
- High speed differencing with background processing
- Differences displayed inline
- Difference Viewer virtually identical to standard Disassembler window
Reflexil is an advanced assembly editor, able to manipulate IL code and save the modified assemblies to disk. Reflexil also supports ‘on the fly’ C# and VB.NET code injection.
Created by Sebastien LEBRETON
.NET Reflector is a great tool for doing an in-depth examination of various types of assemblies and also for disassembling IL code towards a supported .NET language. However, Reflector is not designed to modify either the structure or the IL code of assemblies. Reflexil allows such modifications and is directed especially towards IL code handling. It accomplishes this by proposing a complete instruction editor and by allowing C# / VB.NET code injection.
- Alter any .NET assembly (exe or dll file) without source code
- Complete IL Editor
- On the fly VB.NET or C# compilation (v2.0, v3.5, v4.0) and injection
- Strong name removal
- Rename, delete or add types, methods, fields, events, … to an assembly
- PEVerify wrapper
Assembly Visualizer is an open-source data visualization add-in, created for more convenient assemblies investigation.
Created by Denis Markelov
Assembly Visualizer gives you an ability to take from assemblies as much information as you can with a minimum amount of actions. It has several components, showing data from different perspectives.
- Search for types in specified assemblies
- Types sorting by descendants or members count
- Types filtering by nature (enum, interface, etc.) and visibility
- Ability to view enum and interface members right from the search in tooltips
- Visualization of type hierarchy from base to descendants
- Browsing type hierarchy from type to its supertypes
- Highlighting of virtual members and their overrides
- Members filtering by nature (method, field, etc.) and visibility
- Visualization of interactions between members of one or more types
- Drawing full dependency graph for selected assemblies
Snippy is a light weight snippet compiler originally created by Jon Skeet for his book C# in Depth: What you need to master C# 2 and 3, and later turned it into a Reflector add-in by Jason Haley.
Created by Jason Haley
The features of the Reflector Add-in match the features of Jon Skeet’s WPF Snippy (or did at the time Jason wrote the add-in).
- Attempts to build C# code typed in the Snippy Window. When you compile, any build messages (including error messages from the build) are written to the Output Window – which only shows after a Build has been called for
- You can optionally Save the code in the Snippy window as a snippet file. This is designed to save a temporary snippet – if you want to reopen later, you should use the Save As snippet
- Exports or allows the user to save the code in the Snippy window (wrapped with the templated code) as a C# file
FileDisassembler is a little add-in that can be used to dump the decompiler output to files of any Reflector supported language (C#, VB.NET, Delphi).
Created by Denis Bauer
This is extremely useful if you are searching for a specific line of code, as you can use VS.NET’s “Find in Files” or want to convert a class from one language to another.
- Dump all classes of an assembly into source code files in any .NET language
- Creates proper directory structure that matches the namespace
- Optionally creates a Visual Studio project file
The SQL Assembly Browser is a little add-in that can be used to browse .NET assemblies stored in a SQL Server database.
Created by Denis Bauer
You can connect your local Reflector installation to a remote SQL Server instance, list the databases and its assemblies and download them directly into .NET Reflector.
- Allows you to connect to any CLR-enabled SQL Server
- Lists all the assemblies stored in the database
- Allows to open an assembly directly in Reflector
Peli's Classic Bundle
Peli’s Classic bundle is a set of four .NET Reflector add-ins, originally written by Jonathan "Peli" de Halleux. Although no longer supported by Peli, these add-ins are considered "classics" by many, and are predecessors to several more contemporary extensions.
Created by Peli de Halleux
Peli’s add-ins cover a variety of functionality including code annotation, basic assembly visualization, COM/OLE type library importing, and code analysis and metric visualization. Please bear in mind that these add-ins are provided "as-is", although further information is available in the downloaded .zip file.
- CodeMetrics – Analyzes and computes several code quality metrics on your assemblies, such as cyclomaatic complexity and number of local variables in a method (to name just two).
- Review – A lightweight code annotation add-in.
- Graph – Visualizes assembly dependencies.
- ComLoader – Allows the importing of COM/OLE type libraries using .NET Reflector’s file menu.