Delphi Decompiler Dede [FULL]
If you do legacy Windows reversing, keep a copy in your toolkit. And if you’re a young reverse engineer, exploring Dede’s output side-by-side with a debugger will teach you more about Delphi’s internals than any book. Have you used Dede or IDR to recover a lost project? Share your war stories in the comments below.
Load the EXE into Dede. Step 2: The "Forms" tab instantly shows MainForm contains TButton , TEdit , TListBox . Step 3: Click on Button1 . Dede lists its OnClick handler at address 0x0042A1B0 . Step 4: Switch to "Procedures", locate TMainForm.Button1Click , and view the disassembly:
Short for (though often stylized as DEDE ), this tool was the gold standard for peering into the opaque world of compiled Delphi applications. While modern Delphi versions (10.x, 11.x, 12.x) have introduced new compilation tricks, Dede remains a fascinating piece of software archaeology. Delphi Decompiler Dede
If you’ve been in the Windows reverse engineering or legacy software maintenance space for more than a decade, one name still echoes through forums and tool libraries: Dede .
Want a follow-up post comparing Dede vs IDR vs Ghidra for Delphi? Let me know. If you do legacy Windows reversing, keep a
0042A1B0 push ebp 0042A1B1 mov ebp, esp 0042A1B3 push ecx 0042A1B4 mov eax, [ebp+$08] ... 0042A1D0 call TListBox::Items::Add You now know the button adds something to a listbox. With manual analysis, you can rewrite a functional equivalent.
This has saved many commercial projects from extinction. Dede is not a silver bullet : Share your war stories in the comments below
| Problem | Why It Fails | |---------|---------------| | (XE7, 10.x, 11.x, 12.x) | RTTI format changed; DFM compression (GZip) and 64-bit compilation break Dede’s parsers. | | Obfuscators (e.g., ASProtect, Themida) | Dede requires a raw, unpacked binary. It cannot handle packed or encrypted sections. | | No .NET support | Only native x86 Delphi. | | Outdated UI | Runs poorly on Windows 10/11 without compatibility mode. | | False positives | Sometimes misidentifies methods due to leftover RTTI from unused units. |