Exposing Objective-C plugin API

Hi,

IDA Pro ships with a plugin for handling Objective-C metadata. This metadata is used to apply type information to the type library, and it can also help resolve objc_msgSend call sites to potential implementations through UI actions.

As a motivating example, I often need to perform data-flow and control-flow analysis on binaries that contain Objective-C code. This requires resolving objc_msgSend calls. In some cases, those calls cannot be resolved precisely, so it becomes important to answer questions such as: “Which classes in the current context implement selector X?”

For workflows like this, it would be very useful to have access to the Objective-C metadata through a programmatic API that plugin developers can consume.

Without such access, developers are left reimplementing the metadata parsing themselves. I ended up doing this outside IDA, using my own Mach-O parser and Objective-C metadata parser. This feels like unnecessary duplicate work, especially since the relevant information is already available inside the IDA ecosystem.

Thank you for your attention.

Hi @gilbo ,

Thanks for raising this issue. Although the request was reported from an Objective-C perspective, the same kind of metadata exposure could also be useful for other plugins, and we’ve heard similar feedback from the community about the need for a more convenient way to access metadata.

We are currently evaluating this internally and investigating how to expose this information in a more generic way. That said, I would not expect this to be addressed in the upcoming release, but the feature request has been recorded.

Thanks again for the honest feedback. If we have any related news to share in the future, we’ll be happy to follow up!