IT
Omnvert

EXE Decompiler: Get the Source Code Out of a Binary

Upload an .exe, .dll, .jar or PyInstaller bundle and get its source back: C# for .NET, Java for JARs, Python for PyInstaller and .pyc. Native machine code gets a disassembly with imports and strings. Nothing you upload is ever run.

🧩
Drop an .exe, .dll, .jar or .pyc here, or click to browse
Up to 50 MB · .NET, Java, PyInstaller, Python bytecode, native PE / ELF
Choose file
1
Upload binary
2
Decompile
3
Read & download
• .NET (.exe / .dll with a CLR header) → C# project, one file per type, via ILSpy.
• Java (.jar / .class) → .java sources via CFR.
• PyInstaller (.exe built from Python) → entry scripts and your own modules as .py.
• Native C / C++ → imports, disassembly and strings. Machine code has no source to recover.
Pick a file to continue.
🔒 Files are processed on our server in an isolated folder, never executed, and removed within hours of your download.
Browser-basedRuns in your browser

This tool processes on your device; your file is not uploaded for processing.

About

Whether a binary can be turned back into readable source depends on what built it, and this tool checks that first. A .NET .exe or .dll carries its metadata and intermediate language, so ILSpy rebuilds C# that reads like the original project, one file per class. A Java .jar or .class goes through CFR and comes back as .java. A program packed with PyInstaller is unpacked, its entry scripts and your own modules are found in the archive and decompiled to Python with pycdc (3.9 and newer) or uncompyle6 (3.8 and older); a bare .pyc works the same way. A native C or C++ executable has no source left inside it: for those you get the import table, an Intel-syntax disassembly and the strings, which is what any reverse-engineering session starts from, and the page says so instead of pretending.

Everything is read, never run. The upload lands in an isolated folder on our server, the matching tool reads it with a time limit, the sources are zipped, and the upload itself is deleted before the response is sent. The decompiled files appear on the page with a file list and a code view, so you can judge the result before downloading. Detection reads the bytes, not the extension: a renamed .NET assembly is still a .NET assembly, and a JAR renamed to .exe is still a JAR.

Use it to recover a project whose source was lost, to audit what a vendor's plugin or a downloaded tool really does, to check for hard-coded keys and endpoints in your own release build, to understand an old in-house utility nobody has the code for, or to learn how a piece of software is put together. Decompiling software you do not own or are not authorised to analyse can violate its licence or local law, and the page asks you to confirm that before it runs.

Limits and honesty: obfuscated .NET or Java (names like a, b, c and control-flow flattening) decompiles but reads poorly; PyInstaller bundles from Python 3.11 and newer decompile partially, and the tool marks those files and includes the bytecode listing; Nuitka, Cython and Go binaries are native and get the disassembly path. Uploads up to 50 MB; one file up to 50 MB a day is free, a credit pack, a 24-hour pass or a subscription covers the rest, shared with the STL and GLB tools.

How it works

  1. 1Open EXE Decompiler: Get the Source Code Out of a Binary and choose your file or enter the required input.
  2. 2Check the settings and start the process.
  3. 3The tool creates the result with temporary server-side processing.
  4. 4Download the output or copy the result when it is ready.

FAQ

›Which binaries come back as real source code?
.NET (C#), Java and PyInstaller / .pyc (Python). Their binaries keep enough structure for a decompiler to rebuild readable code. Native C, C++, Go, Rust or Delphi executables do not; for those you get imports, disassembly and strings.
›Is the file executed on your server?
Never. Each tool reads the file as data: ILSpy parses metadata, CFR parses class files, pyinstxtractor reads the archive, objdump reads the sections. The upload is deleted before the response is sent; only the recovered sources are kept for your download.
›The code has names like a, b, c and looks scrambled.
The program was obfuscated before release. The decompiler still recovers the structure and logic, but names and string constants may be replaced or encrypted. That is a property of the file, not a failure of the tool.
›My PyInstaller program is marked partial.
Python 3.11 and newer changed the bytecode enough that no decompiler handles every construct yet. Files that could not be fully rebuilt are marked, and the bytecode listing is included so nothing is hidden.
›Is it legal?
Decompiling your own software, software you have a licence to analyse, or for interoperability and security research is legal in most places. Decompiling to copy, crack or redistribute someone else's software is not. You confirm your right to analyse the file before the tool runs.
›What about a .NET single-file or self-contained .exe?
Framework-dependent .NET .exe and .dll files decompile directly. A single-file bundle packs the assemblies inside a native host; upload the main .dll next to it if you have one, or extract the bundle first. Support for bundles is on the list.
›Is it free?
One file up to 50 MB a day is free. Beyond that a credit pack, a 24-hour pass or a subscription applies, the same plans as the STL Compressor and GLB Reducer.