Replies: 1 comment
-
There's also an issue when the pointer in FYI, I've since discovered that the datatype is actually an array of 4 structs, each 8-bytes and located in the data segment. The structure is:
It is referenced by this assembly: Clearly something's awry here! |
Beta Was this translation helpful? Give feedback.
-
I have a variable of type
mixMessage * *32
which is an iindirect pointer to a functionWORD mixMessage(int wDevID, WORD wMsg, WORD , DWORD dwParam1, DWORD dwParam2, DWORD , ulong )
, however I'm trying to find where in Ghidra's code the parameters are assigned there stack locations. Can anyone advise (@caheckman, @emteere ...)?In the past I've added code to stack function parameters from left-to-right (PASCAL calling convention - used in 1990's Windows applications), but I've noticed recently that Ghidra seems to be ignoring my updates. I'm assuming that in cases of using function pointer variables (see example below) code other than that in the
PrototypeModel
class is being used!I can see that dispite the prototype parameter saying 3 times 2-bytes followed by 4 times 4-bytes using my calling convention, Ghidra is using 4 times 4-bytes followed by 3 times 2-bytes. (I've verified this by reversing the parameters and changing the calling convention.)
Beta Was this translation helpful? Give feedback.
All reactions