Hi
Is there some by which we can determine whether an exported symbol in a DLL is a variable or a function.
The Export Address Table just has name, ordinal number and the RVA for the exxported symbol. From this we can’t say what kind of symbol it is.
I was expecting that the exported variables will be present in the .rdata section and exported functions i the .text section, but I observed that exported variables were also present in .text section in some cases.
Another way could be to identify exported variables based on some specific string paatern in the name, like in case of exported class the virtual function table gets exported, for ex symbol for the exported vftable in class CComPlusObject is ??_7CComPlusObject@@6B@
In case we compile using VC++ compiler, this kind of name is generated due to name mangling. Taking hint from this we can check if for some specific string in the name, like in this case we can check for ??_7, similarly for other names like
?xxxxx@CAutoWindows@@1UAFX_INTERFACEMAP@@B
?xxxxx@CApplication@@1UAFX_DISPMAP@@B
?xxxxx@CApplication@@2U_GUID@@B
?xxxxx@CDocObjectDoc@@1UAFX_MSGMAP@@B
Is there some standard way by which we can know whether the exported symbol is a variable or a function.
Thanks