What I reverse :
Old 4~8mb games compiled with vc++ 2006~2008(depends on version), whose source code is lost.
It(they) has the mixtures of their custom structures, classes and directX sdk classes.
What I did with an IDA:
Clumsy way - find some functions(subroutines) do some roles in gameplaying.
Searching - find some structures which helps analyzing their settings.
Class informer - Helped a lot finding class hierarchy but was no use without knowing size of class member.
Question :
- I am currently trying new way: compiling old directX sdk examples with old compiler(vc++ 2008) to extract symbols for helping reversing. The RTTI clues say that the game uses directX classes(DxSurface, DxImageBase...) So I think it will help organizing classes from the bottom.
1-1. For acquiring vtable and struct info of compiled directx class, I planned to compile some sample codes with directx library.
1-2. With compiled PDB symbol, I expect to measure the size of some class, and more precise class information(that the class will implemented into struct and struct_vtbl).
1-3. After successive 1-2, I'll apply this result to original project, reversing the old game.
Does this plan valid for reversing the game?
I did the way mentioned above with libjpeg, but the compiled function call was usercall and the one in the actual game use cdecl call. How can I change calling convention in a whole project?