For decades, IDA's plugin interface remained the same. Your plugin had to export a plugin_t
structure named PLUGIN
, which contained function pointers to its init
, run
, and optional term
functions. You can see that in your snippets above.
IDA 7.5 introduced a new plugin interface for C++ plugins, based on inheritance from the plugmod_t
interface, seemingly because future versions of IDA will support multiple databases being loaded at the same time. Download the IDA SDK and look in its plugins
subdirectory. All of the existing example plugins have been updated to use the new interface.
TL;DR plugin source code developed for versions less than 7.5 is not going to work anymore for 7.5 and above; it needs to be modified to use the new plugmod_t
interface.
P.S. don't add updates to your post as comments and don't make major edits to your original post. Ask one question at a time. Make a new post if you have a different question.