When I was newbie in .NET, it was a shocked for me to learn that .NET assemblies can be decompile. But today I know that this is a normal situation for a language which is compiling to an intermediate language. As we know that, after compiling a .NET project the output will be in MSIL (Microsoft Intermediate Language). And during the application lifecycle this codes will be compiled to Native Codes by the JIT (Just-In-Time Compiler) when they first used and cached in that computer for the future usages. Anyway this is another subject for us how JIT works, but here the problem is our assemblies are in MSIL format which has about 229 opcodes and all these opcodes has a standard working procedure. So if we know these opcodes and how they are working, we can produce the .NET codes by reverse engineering. This is simply what decompilers do. But why there are no stable decompilers for the native exes?
Since blogs have started to spread as mushrooms in the world of web, I have been thinking about creating my own blog which I can use as a sharing point of some useful and functional codes, ideas, theories about .NET and C#. My aim is not only sharing codes, but also making some discussions inside the depths of the .NET with the people of the .NET, but something always happened to prevent me from creating my own blog space through all these times. Although I persuaded myself that I couldn’t open my blog because of “business”, “time limitation”, etc., I know the real reason has been laziness.