0

I am familiar with debuggers and sorts. I was going through a program and noticed that IDA does make some mistakes on what it decides what on its pseudo code will be.

Is there a list of common mistakes by IDA and do you think that it would be possible to get something to a compilable source?

I thought I would test it out on some programs and one thing weird I noticed is that it will do:

v1 = thiscall();

Where as in source I just have the thiscall();.

I also noticed that it bloats a lot of things which is from the assembly itself.

So my questions are:

  • Is there a list of common IDA mistakes ?
  • Can once I have worked back fairly close to source will IDA produce a header file ?
  • Is it possible to get back to a source that I could at least compile code from?

Its looking like I might be able to providing if I knew the libraries and outline of the program well. Let me know what your thoughts and experiences from using IDA on this subject.

Edit: I found a project that actually did this. All functions are byte for byte in 100% accuracy. So yes my past self, it is indeed possible. https://github.com/diasurgical/devilution

1

1 Answer 1

2

You can't get anything back that compiles, or even assembles, without massive manual intervention, and, given the ambiguities in object code, it's very unlikely this situation will ever change.

See Why there are not any disassemblers that can generate re-assemblable asm code? for a more detailed answer.

Not the answer you're looking for? Browse other questions tagged or ask your own question.