#1
|
|||
|
|||
Reverse engineering Delphi executables?
Does anyone have any pointers on how to reverse engineer Borland Delphi executables? (I dont have a clue what version of Delphi my program was built with). Any files that will help recognize Delphi functions in the exe? Or dump information about forms and units?
|
The Following User Says Thank You to jonwil For This Useful Post: | ||
Indigo (07-19-2019) |
#2
|
|||
|
|||
IDR is a good place to start, should do most of what you are looking for that is Delphi specific.
https://github.com/crypto2011/IDR There are also a few IDA plugins/scripts to help you out as well depending on your needs. Last edited by RiRye; 06-09-2019 at 16:30. Reason: Ass -> as |
The Following User Says Thank You to RiRye For This Useful Post: | ||
Indigo (07-19-2019) |
#3
|
||||
|
||||
Check here the Collaborative RCE Tool Library to get two tools more:
Code:
http://www.woodmann.com/collaborative/tools/index.php/Category:Delphi_Decompilers Nacho_dj
__________________
http://arteam.accessroot.com |
The Following User Says Thank You to Nacho_dj For This Useful Post: | ||
Indigo (07-19-2019) |
#5
|
|||
|
|||
IDR can be good for viewing class metadata and generating scripts that can (sometimes) improve IDA results, although they usually need to be manually edited to fix some bogus results.
With IDA I've noticed sometimes it doesn't automatically detect a Delphi executable, so you can improve the analysis by: - Open the executable but uncheck automatic analysis. - Options -> Compiler to Delphi with calling convention Fastcall. - Set the default string literals to Delphi or Delphi (16 bits), depending on how recent the executable is. - View -> Open Subviews -> Type libraries, remove the defaults. - View -> Open Subviews -> Signatures, remove the default and add the flirt signatures for your target (for example "bds" for Delphi 6/7), and mssdk32/64. - Finally, start the analysis. This can help quite a bit, although the flirt signatures tend to have a lot of false positives for VCL functions, so just be aware. |
The Following 4 Users Say Thank You to zeffy For This Useful Post: | ||
Indigo (07-19-2019), niculaita (06-23-2019), riverstore (08-21-2021), SinaDiR (06-23-2019) |
#6
|
|||
|
|||
Check this out
https://github.com/Coldzer0/IDA-For-Delphi |
#7
|
|||
|
|||
What I suggest:
- If program is packed, you need to dump first. - Use IDR autodetect mode. - Let it take the time needed to recover the unit list - Try to understand the events and method table With some luck you can generate the source code for a good amount of routines. OBS.: Sometimes you need to fix the Entry Point and the Parameters of function prototypes. Use Resource Hacker to check the procedures binded to events on forms and their components. |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Reverse engineering QT apps? | jonwil | General Discussion | 5 | 03-23-2021 22:06 |
iOS Reverse Engineering | sope | General Discussion | 0 | 05-13-2016 13:09 |