Contents
Are there any decompilers for target machine codes?
There are decompilers for various target machine codes but they often do not produce useful results (something you can modify and then recompile) as too much of the original source is lost. If you have debug information for the executable you can do an even better job; but, if you have debug information, you probably have the original source too.
Do you need a decompiler for a C + + program?
All this information is not necessary in a C++ program and is discarded in the compilation process. There are decompilers for various target machine codes but they often do not produce useful results (something you can modify and then recompile) as too much of the original source is lost.
What is the process of decompilation in Visual Studio?
Decompilation is the process used to produce source code from compiled code. In order to accomplish this we are partnering with ILSpy, a popular open source project, which provides first class, cross platform symbol generation and decompliation.
Is it possible to decompile.net compiled code?
Since its inception in 2002 .NET compiled code can be decompiled and read crystal clear with popular tools like .NET Reflector, IL Spy, dotPeak… This is a direct consequence of having IL/byte code and a CLR with a JIT compiler. Since 2002 those that want to protect their compiled code from decompilation just have to obfuscate it.
Why is a de-compiler useful for byte code?
You can create a useful de-compiler for byte-code because a lot more information is preserved from the original source than is preserved when producing the final target machine code. The first step of a compiler is to turn the source into some for of intermediate representation often represented as a tree.
Why is machine code cannot be convertible back to original source code?
The reason why machine code cannot be easily convertible back to the original source code is that a lot of information is lost during compilation. Methods and non-exported classes can be inlined, local variable names are lost, file names and structures are lost entirely, compilers can make non-obvious optimizations.