Is there any software to do this? I didn’t find any useful information on the internet so I am asking here.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
You cannot get the exact code, but you can get a decompiled version of it.
The most popular (and best) tool is Reflector, but there are also other .Net decompilers (such as Dis#). You can also decompile the IL using ILDASM, which comes bundled with the .Net Framework SDK Tools.
Method 2
Only managed Languages like c# and Java can be decompiled completely.You can view complete source code.
For Win32 dll you cannot get source code.
For CSharp dll
Use DotPeek becoz it free and works same as ReDgate .Net Compiler
Have fun.
Method 3
Use dotPeek
Select the .dll to decompile
That’s it
Method 4
Use .NET reflector.
Method 5
Use Refractor.
Download from here.
- Open the software after installing.
- Press Ctrl + O and select your DLL File.
- Dll will be shown in left pane.
- Right click on Dll and select Export Source Code.
- Select the folder in which you want to export your files
- Wait for a while it may take 2-3 minutes
Method 6
You can use Reflector and also use Add-In FileGenerator to extract source code into a project.
Method 7
You can use dotPeek
The only thing I have to say is that when using it, right-click on the class to select Decompiled Source instead of double-clicking, otherwise dotpeek will only display the contents of the local cs file, not the decompiled content.

Method 8
If you want to know only some basics inside the dll assembly e.g. Classes, method etc.,to load them dyanamically
you can make use of IL Disassembler tool provided by Microsoft.
Generally located at: “C:Program Files (x86)Microsoft SDKsWindowsv7.0ABin”
Method 9
I used Refractor to recover my script/code from dll file.
Method 10
public async void Decompile(string DllName)
{
string destinationfilename = "";
if (System.IO.File.Exists(DllName))
{
destinationfilename = (@helperRoot + System.IO.Path.GetFileName(medRuleBook.Schemapath)).ToLower();
if (System.IO.File.Exists(destinationfilename))
{
System.IO.File.Delete(destinationfilename);
}
System.IO.File.Copy(DllName, @destinationfilename);
}
// use dll-> XSD
var returnVal = await DoProcess(
@helperRoot + "xsd.exe", """ + @destinationfilename + """);
destinationfilename = destinationfilename.Replace(".dll", ".xsd");
if (System.IO.File.Exists(@destinationfilename))
{
// now use XSD
returnVal =
await DoProcess(
@helperRoot + "xsd.exe", "/c /namespace:RuleBook /language:CS " + """ + @destinationfilename + """);
if (System.IO.File.Exists(@destinationfilename.Replace(".xsd", ".cs")))
{
string getXSD = System.IO.File.ReadAllText(@destinationfilename.Replace(".xsd", ".cs"));
}
}
}
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0


