Interactive Delphi Reconstructor V184.108.40.206 (All Delphi Editions)
What is Interactive Delphi Reconstructor and How to Use It?
Interactive Delphi Reconstructor (IDR) is a powerful tool that can decompile executable files (EXE) and dynamic libraries (DLL) written in Delphi and executed in Windows32 environment. It can help programmers to recover lost source code, analyze malware, or understand the logic of third-party applications. IDR supports Delphi compilers of versions Delphi2 Delphi XE4, and can process both GUI and console applications.
In this article, we will introduce the main features of IDR, and show you how to use it to decompile a sample Delphi application. We will also compare IDR with other well-known Delphi decompilers, and explain why IDR is the best choice for your decompiling needs.
Features of IDR
IDR has many features that make it stand out from other Delphi decompilers. Here are some of them:
Advanced precompiled header support: IDR can handle precompiled headers (*.pch) that are used to speed up the compilation process. It can also generate IDCGen files that contain information about the precompiled headers, which can be useful for further analysis.
Batch compilation: IDR can compile multiple files at once, using the command line tools instead of the built-in compiler. This can improve the speed and reliability of the decompilation process.
Full message pane support: IDR can display the compiler messages in the message pane of the Delphi IDE, just like the built-in compiler. This can help you to identify and fix any errors or warnings that may occur during the decompilation.
Interactive analysis: IDR allows you to interact with the decompiled code in various ways. You can edit, rename, or delete any functions, variables, types, or units. You can also view the cross-references, arguments, local variables, strings, resources, RTTI, forms, and other information of any code element. You can also use the explorer window to navigate through the code structure.
Knowledge base: IDR has a built-in knowledge base that contains information about the standard Delphi libraries and components. It can automatically recognize and name many common functions and types, such as System.SysUtils.StrToInt or TButton.OnClick. You can also add your own knowledge base files (*.bin) to extend the recognition capability of IDR.
Plugins: IDR supports plugins that can enhance its functionality or add new features. For example, there is a plugin that can show the form tree of a Delphi application, which can help you to understand its user interface design.
How to Use IDR
To use IDR, you need to download it from its official GitHub repository. The latest version at the time of writing this article is 220.127.116.11. You do not need to install IDR, just copy the files to a folder of your choice. You will need the following files:
idr.exe: The main executable file of IDR.
dis.dll: A DLL file that contains the disassembler engine of IDR.
icons.dll: A DLL file that contains the icons used by IDR.
idr.ico: An icon file for IDR.
*.bin: Knowledge base files for various Delphi versions.
To run IDR, just double-click on idr.exe. You will see a window like this:
To open a file for decompiling, click on File -> Open or press Ctrl+O. You can select an EXE or DLL file that was compiled by a supported Delphi version. For this example, we will use a sample application called TestApp.exe that was compiled by Delphi 7.
After opening the file, IDR will start analyzing it and display the results in various tabs. The first tab is Units, which shows the list of units that were used by the application. You can double-click on any unit name to view its source code in a new tab.
The second tab is Strings, which shows the list of strings that were found in the application. You can double-click on any string to view its cross-references in a new tab.
The third tab is RTTIs, which shows the list of runtime type information (RTTI) that were found in the application. RTTI is a feature of Delphi that allows you to access the type information of any object at runtime. You can double-click on any RTTI name to view its details in a new tab.
The fourth tab is Resources, which shows the list of resources that were embedded in the application. Resources are data files that can be used by the application, such as icons, bitmaps, cursors, sounds, etc. You can double-click on any resource name to view its content in a new tab.
The fifth tab is Forms, which shows the list of forms that were used by the application. Forms are the windows that make up the user interface of the application. You can double-click on any form name to view its design in a new tab.
The sixth tab is Infos, which shows some general information about the application, such as its file name, size, date, version, compiler, etc.
As you can see, IDR can provide a lot of information about the decompiled application. You can use this information to understand how the application works, or to recover some of its source code. However, you should be aware that IDR cannot restore the exact original source code of the application, because some information is lost during the compilation process. For example, IDR cannot recover the comments, indentation, or formatting of the code. It also cannot recover some high-level constructs, such as classes, interfaces, or generics. Therefore, you should not expect to get a perfect decompilation result from IDR.
Comparison with Other Delphi Decompilers
There are some other Delphi decompilers available on the Internet, such as DeDe, DeDe.NET, DeDeXP, DeDePro, and DeDeX. However, none of them can match the features and quality of IDR. Here are some reasons why IDR is better than other Delphi decompilers:
Support for newer Delphi versions: IDR supports Delphi compilers up to Delphi XE4, while most other decompilers only support up to Delphi 7 or 2007.
Support for precompiled headers: IDR can handle precompiled headers (*.pch), while most other decompilers cannot.
Support for plugins: IDR supports plugins that can extend its functionality or add new features, while most other decompilers do not.
Support for interactive analysis: IDR allows you to interact with the decompiled code in various ways, while most other decompilers only show you a static result.
Support for knowledge base: IDR has a built-in knowledge base that can recognize and name many common functions and types, while most other decompilers do not.
Support for message pane: IDR can display the compiler messages in the message pane of the Delphi IDE, while most other decompilers do not.
Accuracy and reliability: IDR produces more accurate and reliable decompilation results than other decompilers, because it uses a more advanced disassembler engine and analysis algorithm.
In this article, we have introduced Interactive Delphi Reconstructor (IDR), a powerful tool that can decompile executable files (EXE) and dynamic libraries (DLL) written in Delphi and executed in Windows32 environment. We have shown you how to use IDR to decompile a sample Delphi application, and how to view and analyze the results. We have also compared IDR with other well-known Delphi decompilers, and explained why IDR is the best choice for your decompiling needs.
How to Install and Use Plugins for IDR
How to Install and Use Plugins for IDR
One of the most useful plugins for IDR is the Form Tree plugin, which can show you the hierarchy of the forms and their components in a tree view. This can help you to understand the user interface design of the application, and to locate the code that handles the events of the components. To use this plugin, you need to select it from the Plugins menu, or press Ctrl+T. You will see a window like this:
Another useful plugin for IDR is the Code Explorer plugin, which can show you the structure of the code in a tree view. This can help you to navigate through the code, and to find the functions, variables, types, or units that you are looking for. To use this plugin, you need to select it from the Plugins menu, or press Ctrl+E. You will see a window like this:
The Code Explorer plugin window shows the list of units that were found in the application, and their code elements in a tree view. You can expand or collapse any node by clicking on the plus or minus sign. You can also select any node by clicking on it, and view its source code in the bottom panel. You can also double-click on any node to jump to its source code in a new tab.