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 and acknowledge you have read our privacy policy.