Decompiling dotnet apps
Sometimes as developers we run into a legacy application that has been running in production for years when suddenly a bug surfaces. If nobody knows where the source code for that legacy application is, that can be a huge problem.
Introduction to .NET Decompilation
Decompilation is the process of converting compiled .NET assemblies (DLLs or EXEs) back into readable source code. This can be incredibly useful when:
- Dealing with legacy applications without source code
- Debugging production issues where deployed code differs from source control
- Understanding third-party libraries when documentation is insufficient
- Investigating potential security issues or malware
Using dotPeek
dotPeek by JetBrains is a powerful free .NET decompiler that can help solve these problems. I recently had an occasion to use it, and even without the .pdb file, it was able to decompile the code to be very close to the source code we had in source control that we knew wasn’t what was running in production.