[Bug 49946] New: Themida-packed application crashing on multi-hop import forward

WineHQ Bugzilla wine-bugs at winehq.org
Mon Oct 5 12:27:06 CDT 2020


https://bugs.winehq.org/show_bug.cgi?id=49946

            Bug ID: 49946
           Summary: Themida-packed application crashing on multi-hop
                    import forward
           Product: Wine
           Version: 5.18
          Hardware: x86
                OS: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: oleaut32
          Assignee: wine-bugs at winehq.org
          Reporter: heisenberg at croosade.com
   Regression SHA1: f26b1f0392714891bbd8c603de072818cc65e45f
      Distribution: ArchLinux

I'm dealing with a packed application that imports functions from oleaut32.dll.
Specifically, it uses GetErrorInfo and SetErrorInfo.

In the commit mentioned in this issue, SetErrorInfo was moved from ole32.dll
into combase.dll. This is fine, because Microsoft did the same in NT 6. However
Wine now has the situation that we have a forward chain of
oleaut32.SetErrorInfo -> ole32.SetErrorInfo -> combase.SetErrorInfo. I believe
the packer that was applied to the application I'm trying to run cannot deal
with this situation. The first hop goes fine, however for the next one, the
actual function address is not resolved. It ends up literally jumping into the
"combase.SetErrorInfo" string, which of course causes the program to crash
unrecoverably.

The application was running fine up until Wine 5.15. Wine 5.16 was the first
version that incorporated the function move commits, and I've been experiencing
this crash ever since.

As a workaround, I tried recompiling oleaut32 with the forwards in
oleaut32.spec replaced to directly point to combase instead of hopping through
ole32 first. This immediately fixed the crash. Apart from SetErrorInfo this
should also affect GetErrorInfo and CreateErrorInfo since they have the same
chain now. I'm not submitting a patch because I'm not sure if simply changing
them this way may have other side effects.

-- 
Do not reply to this email, post in Bugzilla using the
above URL to reply.
You are receiving this mail because:
You are watching all bug changes.



More information about the wine-bugs mailing list