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