Another option is encrypting source code and decrypting it at run time. It can be so confusing that a decompiler such as Reflector cannot do its job. Other obfuscators allow you to make code flow harder to follow. Obfuscation can be as simple as changing the names of variables, classes, methods, and so forth. Obfuscation is one approach for making it difficult to reengineer code it makes it hard to understand code in its decompiled form. You may be worrying about someone grabbing your assembly and decompiling and stealing your hard work.
Dis# : A commercial application that provides a trial version.The following list provides a sampling of other tools. While Reflector is a wonderful tool, it is not the only option. A good example is CodeSearch, which allows you to easily search for text or regular expressions within disassembled code. The CodePlex site provides an excellent list of available. You can decompile an assembly and view its source in one of these languages.Īn interesting byproduct of the multiple language support is the ability to easily translate from one language to another that is, if you develop an application using C#, you can easily convert it to VB by loading its assembly in Reflector and viewing its source in VB.Īnother great feature of Reflector is its extensibility, thus it is easy to create add-ons. Reflector supports C#, VB, Intermediate Language (IL), Delphi, C++, and Chrome. It processes the code and generates results detailing what assemblies it uses, along with the assemblies that use it. The source code appears in a pane on the right side of the interface.Īnalyze is another option that is available via the Tools menu. Reflector allows you to easily examine a class and its methods, as well as disassemble a class, by double-clicking it or using the Tools menu.
The user clicks a plus sign (+) alongside each assembly to expand and view its contents. Decompiled assemblies are presented in a tree format. A Reflector option (which is available from the Tools menu) allows you to choose the. Reflector provides a File drop-down menu to load and process your assemblies. NET assemblies are loaded this includes mscorlib, System, System.Data, System.Drawing, System.Web,, and System.Xml.
The Reflector download is one zip file containing configuration files and a readme file, along with an executable. A popular choice is Reflector, which provides an easy-to-use interface for peeking inside. There are numerous tools available to help with these tasks, so you can avoid the process of learning MSIL. The next step is the conversion of the MSIL to. Microsoft's ILDASM tool, which is included with the. The first step is to extract the MSIL from the assembly. It is possible to take the MSIL from an assembly and convert it back to. The assembly includes the MSIL as well as metadata, which provides additional information about security, versioning, and so forth. The entire set of classes and code-behind code is compiled into a single DLL file, which is referred to as an assembly. MSIL is processed by the Common Language Runtime (CLR) during program execution. The same MSIL is produced regardless of the source language (e.g., C#, VB, and C++). When compiled, source code is translated into Microsoft Intermediate Language (MSIL). In this column, I explore reverse engineering compiled ASP.NET code, with an emphasis on the Reflector tool. After lengthy discussions, we decompiled the production Dynamic Link Library (DDL) files and compared them to code repository versions to pinpoint what code was in production. The client had code in a repository as well as in production, but they were unsure about what functionality had actually been deployed. During a recent project, I found myself in an awkward (though not unique) situation.