mirror of
https://github.com/thunderbrewhq/binana.git
synced 2026-05-03 13:03:54 +00:00
feat(profile): add macros for properly defining the interfaces of vtables
This commit is contained in:
parent
8f4b08b0e6
commit
4b438d3528
2 changed files with 23 additions and 4 deletions
|
|
@ -28,4 +28,23 @@
|
|||
|
||||
#define DECLARE_UNION(T) typedef union T T
|
||||
|
||||
#if defined(IDA) || defined(CLANGD)
|
||||
// void Method(int32_t a1);
|
||||
#define P_METHOD(__result__, name, ...) __result__(__thiscall* name)(INTERFACE * this, __VA_ARGS__)
|
||||
|
||||
// void Method();
|
||||
#define E_METHOD(__result__, name) __result__(__thiscall* name)(INTERFACE * this)
|
||||
|
||||
#else
|
||||
|
||||
// ghidra doesn't support calling conventions in function pointer types :(
|
||||
// this hides autoanalysis for the 'this' pointer but at least has correct
|
||||
// parameter types
|
||||
|
||||
#define P_METHOD(__result__, name, ...) __result__ (*name)(__VA_ARGS__)
|
||||
|
||||
#define E_METHOD(__result__, name) __result__ (*name)()
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue