Can we calculate/extract Virtual Table address some how from DIA SDK?
-
Hello, Can we calculate/extract Virtual Table address some how from DIA SDK? Regards, Usman
-
Hello, Can we calculate/extract Virtual Table address some how from DIA SDK? Regards, Usman
The original pointer you receive on CoCreateInstance()[^] points to the vtbl. However since this is an internal COM object you cannot rely on any of its contents if accessed other than through the proper COM calls.
Just say 'NO' to evaluated arguments for diadic functions! Ash
-
The original pointer you receive on CoCreateInstance()[^] points to the vtbl. However since this is an internal COM object you cannot rely on any of its contents if accessed other than through the proper COM calls.
Just say 'NO' to evaluated arguments for diadic functions! Ash
I have Simple Win32 type which have some virtual functions. I want access the base pointer of virtual table. Some how If I can pass type and it returns the existing vtable's start address...?
-
I have Simple Win32 type which have some virtual functions. I want access the base pointer of virtual table. Some how If I can pass type and it returns the existing vtable's start address...?
I am afraid I am a bit confused now. As I said before the vtbl pointer of a COM object is returned to the caller from
CoCreatInstance()
. I don't understand what this has to do with virtual functions in your Win32 application; perhaps you could clarify.Just say 'NO' to evaluated arguments for diadic functions! Ash
-
I am afraid I am a bit confused now. As I said before the vtbl pointer of a COM object is returned to the caller from
CoCreatInstance()
. I don't understand what this has to do with virtual functions in your Win32 application; perhaps you could clarify.Just say 'NO' to evaluated arguments for diadic functions! Ash
Let me clarify now.! Forget about COM. I have Win32 Type say.. (MyStruct) and it contains some virtual functions. Now this type would contains an extra member(hidden) i.e vpVtable that's pointing to some vtable's base address which this type contains because it has some virtual functions. Right...? Now I want to access some how this vtable's base address or some how the rva to this vtable's address. I have read the documentation of DIA SDK. and it gives you every information what pdb file contains. Now I am giving the pdb file of that binary(WIN32 Dll/EXE) which contains a type(i.e struct namely MyStruct) which in turns contains some virtual functions. So If some how I can point "MyStruct" and can get its contained vtable's base address. If still any confusion in understanding the context, do let me know then..
-
Let me clarify now.! Forget about COM. I have Win32 Type say.. (MyStruct) and it contains some virtual functions. Now this type would contains an extra member(hidden) i.e vpVtable that's pointing to some vtable's base address which this type contains because it has some virtual functions. Right...? Now I want to access some how this vtable's base address or some how the rva to this vtable's address. I have read the documentation of DIA SDK. and it gives you every information what pdb file contains. Now I am giving the pdb file of that binary(WIN32 Dll/EXE) which contains a type(i.e struct namely MyStruct) which in turns contains some virtual functions. So If some how I can point "MyStruct" and can get its contained vtable's base address. If still any confusion in understanding the context, do let me know then..
OK, I think I understand your problem. However, I'm afraid I have never looked into PDB file so cannot offer any suggestions on that. You may find this article[^] useful as he goes into the structure of vtables in C and how they match with C++ classes.
Just say 'NO' to evaluated arguments for diadic functions! Ash