sei-eschwartz

Results 151 comments of sei-eschwartz

``` reasonMergeVFTables_A(constructor, 0x7f7f58, 0x4e5730, 0x7f7f58, 0, factVFTableWrite(0x4e5763, 0x4e5730, 0, 0x7f7f58)). ``` This is connecting CMusicJingle's VFTable with constructor 0x4e5730. But several other methods also install this VFTable: ``` Concluding factVFTableWrite(0x6176de,...

I've never seen this before; the EXE you sent me actually has debug symbols embedded in it that IDA can read. This makes things a LOT easier!

Going back to the original sanity problem where we were inheriting from two offsets, here is the class hierarchy according to IDA: ``` .data:0087DA58 ; public class oCViewDocumentMap /* mdisp:0...

> I suspect that maybe 0x4e5730 is not a constructor for CMusicJingle That was wrong. 0x4e5730 is a constructor for CMusicJingle

0x4e4e30 is zCMusicSys_DirectMusic::zCMusicSys_DirectMusic. It's still pretty hard to understand even with symbols! These are not necessarily adjacent lines in the decompilation. ``` zCMusicTheme::zCMusicTheme((zCMusicTheme *)the_weird_object); the_weird_object[0] = (int)&zCMusicTheme::`vftable'; zSTRING::~zSTRING((zSTRING *)probably_part_of_weird_object); zSTRING::~zSTRING((zSTRING...

I think I got it! https://godbolt.org/z/fz4qhhGTn In this example, the object is not really needed, but the compiler still needs to allocate memory so it can run the constructors. So...

Here's a better example showing the classes don't even need to be related: https://godbolt.org/z/7T4vb9Yc9

My plan here is to disable reasonClassRelatedMethod_B for objects on the stack (and maybe globals?). We would make it into a guess for these objects. @sei-ccohen Is there a way...

@sei-ccohen > It's likely that only "type_Heap" is exported as a Prolog fact currently Seems like a problem :-)

@sei-ccohen Just a reminder that you are still looking into why thisPtrAllocation facts are not present for stack objects (I think)