I read in the IDA Pro Book that

you may use till.exe to parse header files and create standalone .til files which can be made globally available by copying them into <IDADIR>/til. This is all well and good when you happen to have access to source code that you then allow IDA (or till.exe) to parse.

Now I was wondering what would happen if the header file is from a library version older than the one used by the target binary (or vice versa). The closest I could find was this SO answer:

If the ABI in the exported functions don't change you should be able to get away with using an older DLL with a program linked against a newer .lib, as long as the program isn't using a new export that are in the new .lib but not in the older DLL.

Things which affect the ABI (I'm not claiming this is a comprehensive list):

  • calling convention
  • export name
  • parameter list (including types)

Does anyone have experience with using .til files although the version does not exactly match? In the best case, I guess, the .til file should work fine. But what could happen in the worst case, i.e. if any of the above mentioned three things change?

Is there any chance I can detect when the application of a slightly wrong .til file causes problems?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.