Skip to main content
Tweeted twitter.com/#!/StackReverseEng/status/386977071203106816
deleted 99 characters in body
Source Link
asheeshr
  • 2.5k
  • 8
  • 28
  • 41

So iI am trying to write a plugin for IDA PRO, mainly because iI want to use the nifty graphing feature on a custom intermediate language.

Anyways, after After the first look at the IDA plugin system, i crawled into some corner and felt small and unimportant. Crap, that'sI am a lot of stufflittle lost.

Before i diggI dig deeper, iI have some generic understanding questions, which put me at unease:

  1. doesDoes the SDK enforce a struct alignment? If not, how can iI receive or supply pointers to structs compatible across compilers?

  2. whyWhy do plugins export a data strcut strcut (PLUGIN), and not standard exported functions? What is the advantage? Again i, I would fear for alignment issues across compilers.

  3. evenEven more surprising, at least the HexRays part of the sdk seems to offer class ABI compatibility, meaning iI can derive from a supplied class definition and use the result with the SDK (virtual functions and all)! How does that work?

  4. Additionally, the SDK can return pointers to classes that I am supposed to destroy with the "delete" keyword. Isnt that bound to end in trouble?

how can that possibly work?

  1. Additionally, the SDK can return pointers to classes that i am supposed to destroy with the "delete" keyword. Isnt that bound to end in trouble?

All that makes me a little nervous. Does anyone know how this is done?

So i am trying to write a plugin for IDA PRO, mainly because i want to use the nifty graphing feature on a custom intermediate language.

Anyways, after the first look at the IDA plugin system, i crawled into some corner and felt small and unimportant. Crap, that's a lot of stuff.

Before i digg deeper, i have some generic understanding questions, which put me at unease:

  1. does the SDK enforce a struct alignment? If not, how can i receive or supply pointers to structs compatible across compilers?

  2. why do plugins export a data strcut (PLUGIN), and not standard exported functions? What is the advantage? Again i would fear for alignment issues across compilers.

  3. even more surprising, at least the HexRays part of the sdk seems to offer class ABI compatibility, meaning i can derive from a supplied class definition and use the result with the SDK (virtual functions and all)!

how can that possibly work?

  1. Additionally, the SDK can return pointers to classes that i am supposed to destroy with the "delete" keyword. Isnt that bound to end in trouble?

All that makes me a little nervous. Does anyone know how this is done?

I am trying to write a plugin for IDA PRO, mainly because I want to use the nifty graphing feature on a custom intermediate language. After the first look at the IDA plugin system, I am a little lost.

Before I dig deeper, I have some generic understanding questions, which put me at unease:

  1. Does the SDK enforce a struct alignment? If not, how can I receive or supply pointers to structs compatible across compilers?

  2. Why do plugins export a data strcut (PLUGIN), and not standard exported functions? What is the advantage? Again, I would fear for alignment issues across compilers.

  3. Even more surprising, at least the HexRays part of the sdk seems to offer class ABI compatibility, meaning I can derive from a supplied class definition and use the result with the SDK (virtual functions and all)! How does that work?

  4. Additionally, the SDK can return pointers to classes that I am supposed to destroy with the "delete" keyword. Isnt that bound to end in trouble?

All that makes me a little nervous. Does anyone know how this is done?

Source Link
bernd feinman
  • 463
  • 1
  • 3
  • 10

IDA Plugin writing generic questions

So i am trying to write a plugin for IDA PRO, mainly because i want to use the nifty graphing feature on a custom intermediate language.

Anyways, after the first look at the IDA plugin system, i crawled into some corner and felt small and unimportant. Crap, that's a lot of stuff.

Before i digg deeper, i have some generic understanding questions, which put me at unease:

  1. does the SDK enforce a struct alignment? If not, how can i receive or supply pointers to structs compatible across compilers?

  2. why do plugins export a data strcut (PLUGIN), and not standard exported functions? What is the advantage? Again i would fear for alignment issues across compilers.

  3. even more surprising, at least the HexRays part of the sdk seems to offer class ABI compatibility, meaning i can derive from a supplied class definition and use the result with the SDK (virtual functions and all)!

how can that possibly work?

  1. Additionally, the SDK can return pointers to classes that i am supposed to destroy with the "delete" keyword. Isnt that bound to end in trouble?

All that makes me a little nervous. Does anyone know how this is done?