Skip to main content
7 events
when toggle format what by license comment
May 25, 2018 at 8:26 vote accept Biswapriyo
May 24, 2018 at 14:31 comment added Anton Kukoba Yep, these ppv items are pointers, so in 32bit code the offsets will be a multiple of 4, in x64 - multiple of 8. Ex 0, 4, 8 vs 0, 8, 0x10 etc.
May 24, 2018 at 12:22 comment added Biswapriyo Ia asked if the offsets are different in 32bit and 64bit.
May 24, 2018 at 10:29 comment added Anton Kukoba It depends on the class hierarchy. Yes the first 3 methods in ppv are always QueryInterface, AddRef and Release due to all COM classes are derived from IUnknown. If the class is derived from IDispatch (which is derived from IUnknown), then there's going to be GetTypeInfoCount, GetTypeInfo, GetIDsOfNames and Invoke. And after those, there will be own methods of the COM class.
Apr 23, 2018 at 7:33 comment added Anton Kukoba each pointer in vtable points to the function code, which you need to disasseble. One by one.
Apr 19, 2018 at 8:29 comment added Anton Kukoba the only way is through disassembling. IDA may recognize the arguments count automatically, but the types of the arguments are up to you to reverse engineer. Also pay attention to the fact that COM methods pass the pointer to this as stack argument, not via ECX. I.e. first argument in COM methods is always this.
Apr 19, 2018 at 7:59 history answered Anton Kukoba CC BY-SA 3.0