Monday, 4 August 2014

Free Tools for C# reverse engineering

Reverse engineering or decompiling an application can be done easily for .net java applications and is very straight forward but for languages like C++ or C, it's not a straightforward process. The managed code (.NET and Java) world provides a much easier approach, as all source code is compiled into Microsoft Intermediate Language (MSIL). The MSIL is converted to machine code by a just-in-time (JIT) compiler when it is executed.
I worked with lots of reverse engineering tools including reflector but i found JustCompile the best which has large number of features and great user interface.I've used Red gate reflector also but it's no longer free

Free Tool


ILSpy
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.
ILSpy requires the .NET Framework 4.0.


Free .NET Decompiler and Assembly Browser

dotPeek is a free-of-charge .NET decompiler from JetBrains, the makers of ReSharper and more developer productivity tools.


Features?

  1. Decompiling .NET 1.0-4.5 assemblies to C#
  2. Exporting decompiled code to Visual Studio projects
  3. Support for downloading code from source servers and PDB files generation
  4. Quick jump to a type, assembly, symbol, or type member
  5. Effortless navigation to symbol declarations,
    implementations, derived and base symbols, and more
  6. Accurate search for symbol usages
    with advanced presentation of search results
  7. Overview of inheritance chains
  8. Syntax highlighting
  9. Complete keyboard support
  10. dotPeek is free!
FEATURES
Fastest Decompiler
10 times faster than competitors.
Extensible
Extensible
Open API for everyone to create extensions.
[C#5-(WinRT),-APPX]
Easy Assembly Management
Supports .NET 2, 3.5, 4, 4.5, 4.5.1, WinRT Metadata, C#5, APPX and WinMD.
Fast-code-navigation
Fast Code Navigation
Code becomes easily searchable with JustDecompile.
Creates-Visual
Creates Visual Studio Projects
Create a Visual Studio project from a decompiled assembly.
1-Engine-3-Tools
One Engine, Three Tools
JustDecompile integrates with JustCode and JustTrace.
View-Decompiled
View Decompiled Code in Tabs
Switch easily between different methods and assemblies in one JustDecompile instance.
VS-extension
Visual Studio Extension
Decompile referenced assemblies in a Visual Studio project.
Extract-resources
Extract Resources From Assemblies
Save resources from assemblies.
Usage-analysis
Usage Analysis
Bookmark usages in loaded assemblies.
[Style-Reports-to-Your-Needs]
Command Line Support
Export code directly from the command prompt.
[Easy-Assembly]
Integrate With Windows Explorer Context Menu
Here are three more available options, all of which are free:

Dotnet IL Editor (DILE) lets you disassemble and debug .NET code.
dotPeek :dotPeek is a free-of-charge .NET decompiler from JetBrains, the makers of ReSharper and more developer productivity tools.




FEATURES
 Decompiling .NET 1.0-4.5 assemblies to C#
Exporting decompiled code to Visual Studio projects
Support for downloading code from source servers and PDB files generation
Quick jump to a type, assembly, symbol, or type member
Effortless navigation to symbol declarations,
implementations, derived and base symbols, and more
Accurate search for symbol usages
with advanced presentation of search results
Overview of inheritance chains
http://community.sharpdevelop.net/photos/christophwille/images/34590/original.aspxSyntax highlighting
Complete keyboard support
  • ILSpy is an open source assembly browser and decompiler.
ILSpy Features

Assembly browsing
IL Disassembly
Support C# 5.0 "async"
Decompilation to C#
Supports lambdas and 'yield return'
Shows XML documentation
Decompilation to VB
Saving of resources
Save decompiled assembly as .csproj
Search for types/methods/properties (substring)
Hyperlink-based type/method/property navigation
Base/Derived types navigation
Navigation history
BAML to XAML decompiler
Save Assembly as C# Project
Find usage of field/method
Extensible via plugins (MEF)
Assembly Lists

MSIL Disassembler: The MSIL Disassembler is a companion tool to the MSIL Assembler (Ilasm.exe). Ildasm.exe takes a portable executable (PE) file that contains Microsoft intermediate language (MSIL) code and creates a text file suitable as input to Ilasm.exe.
ILSpy
: ILSpy is the open-source .NET assembly browser and decompiler from the SharpDevelop team.
.NET Reflector: NET Reflector is a commercial assembly browser for the Microsoft .NET platform that can be used to explore, analyze, decompile, and debug the contents of any .NET assembly. Used to be free.
Dotnet IL Editor (a disassembler): 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.
IL.View – IL.View is an open-source Silverlight .NET assembly browser and decompiler.
 Common Compiler Infrastructure (CCI): CCI consists of two components, CCI Metadata and CCI Code, which represent a .NET portable executable (PE) or debug file as an object model. Applications can then use the object model to analyze or modify the contents of the file.
Mono Cecil: Cecil is a library written by Jb Evain to generate and inspect programs and libraries in the ECMA CIL format. It has full support for generics, and support some debugging symbol forma
 Assembly Analyzer: Assembly Analyzer is a tool for analyzing the metadata and resources within a .NET assembly, as well as disassembling non-CLI executable files.  The tool allows you to view dependencies of assemblies and members.  It uses the Mirror library (source included) for loading assembly metadata and other Portable Executable-format files.
Salamander: Salamander is a commercial .NET decompiler that converts executable files (.EXE or .DLL) from Intermediate Language (IL, MSIL, CIL) binary format to high-level source codes, such as C#, managed C++, Visual Basic.NET, etc. For more than 8,000 classes that have been tested, Salamander always produces equivalent and recompilable codes that are remarkably close to the original source codes Dis#: commercial. Dis# (DisSharp) is a powerful tool to reverse engineer MSIL code into a human readable one.
Spices.NET Decompiler: Spices.Net Decompiler is a commercial tool that offers a productivity package for .NET software developers that is exceptional in the industry for ease of use and top of the range performance.
Decompiler.NET: Decompiler.NET is a commercially available combination of Decompiler, Obfuscator, Language Translator, and Refactoring Tool for Microsoft .NET managed applications.