Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Knowledge base for delphi 10.1 and later #56

Open
danyhm opened this issue Apr 5, 2020 · 8 comments
Open

Knowledge base for delphi 10.1 and later #56

danyhm opened this issue Apr 5, 2020 · 8 comments

Comments

@danyhm
Copy link

danyhm commented Apr 5, 2020

Hello,
I have a file compiled with Embarcadero Delphi(10.1 Berlin) and while trying to process it with IDR it autodetects it as kb2014 which is obviously wrong.

I the processed file, I get a lot of "prototype of ... is not complete" and "prototype is not complete" and only get the source code for a few functions.

I was wondering how can I obtain the BINs for this version?

This project has been by far the best I could find at decompiling Delphi files. great job!

@crypto2011
Copy link
Owner

Hello
I couldn't find patterns that fully define Delphi version for kb2013 and kb2014, so you can manually set desired Delphi version.
You cannot obtain source code for all program (as IDA), you need strictly define prototypes and decompile only one procedure or function at one time.

@danyhm
Copy link
Author

danyhm commented Apr 5, 2020

I did decompile one function at a time but for some of them, I got the errors.
Is there any way to correct the errors? could it be because of the version difference? I checked the website and found out that Delphi 2013 and 2014 are difference from 10.1 to 10.3

@danyhm
Copy link
Author

danyhm commented Apr 5, 2020

one more thing that doesn't work is the Unicode strings.
my program is in an RTL language and the strings are Unicode but IDR shows them as question marks "?".

How can I solve that?

@crypto2011
Copy link
Owner

Unicode strings stuff need aditional components.

@danyhm
Copy link
Author

danyhm commented Apr 7, 2020

I think it's needed. I'm getting garbage text in IDC generator.

example:

MakeComm(0x494E92, "'TCanvasD2D.?f8C:�'+#0+p°�'+#0+�°�'+#0+ª°�'+#0+ʰ�'+#0+Ⱇ'+#0+ü°�'+#0+�±�'+#0+&±�'+#0+H±�'+#0+f±�'+#0+�±�'+#0+¤±�'+#0+#0+#0+#0+#0+À±�'+#0+#0+#0+#0+#0+À±�'+#0+#0+#0+#0+#0+Ա�'+#0+𱗧+#0+#8+²�'+#0+�²�'+#0+(²�'+#0+>²�'+#0+R²�'+#0+d²�'+#0+t²�'+#0+�²�'+#0+�²�'+#0+¨²�'+#0+¸²�'+#0+#0+#0+#0+#0+Ա�'+#0+𱗧+#0+#8+²�'+#0+�²�'+#0+(²�'+#0+>²�'+#0+R²�'+#0+d²�'+#0+t²�'+#0+�²�'+#0+�²�'+#0+¨²�'+#0+¸²'");

which breaks the IDC scripts and doesn't let it run at all.

@alexis-
Copy link

alexis- commented Nov 18, 2020

Hi @crypto2011,

Thank you for sharing IDR with the world. It has been essential in building my project dedicated to improving education.

Would you be open to take on paid work for updating IDR to support newest versions of Delphi ? (Version 10.2 and above)

SuperMemo Assistant has gained a little popularity, and the software on which it is based recently moved to a newer compiler. I think the community would be willing to fund such work to help the project survive, if you would be interested at all.

You can either reply here or contact me by email (redacted - we are in touch).

@famouzkk
Copy link

bump 10.2 delphi support?

@piratesephiroth
Copy link

Just copy dcu you want to add to knowledge base, copy dcu32int to this directory and run as
dcu32int -K* -U, rename kb.bin to kb2015.bin

see #46

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants