.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

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

Main SmokeTest panel showing FileStream class Drill-down pop-up dialog into the FileStream instance

Usage

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.

Features

  • 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

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

Diff screenshot including Deletes Diff screenshot without Deletes

Usage

Palantir's Reflector.Diff performs high speed differencing between assemblies to help you visualise the changes between them.

Features

  • 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

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

C#VB.NET injection support with intellisense IL instruction editor

Usage

.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.

Features

  • 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

Assembly Visualizer is an open-source data visualization add-in, created for more convenient assemblies investigation.
Created by Denis Markelov

Enhanced types search Type hierarchies visualization

Usage

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.

Features

  • 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

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

OPening and building an existing snuippet from Jon Skeet's book General Snippy options, matching the functionality of Jon's tool

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).

Features

  • 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