-
Notifications
You must be signed in to change notification settings - Fork 187
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
initterm crash when loading unreal engine binaries #42
Comments
Hi! The best would be if you could share the binary, so that I can have a look at it. You can send it to my e-mail: hasherezade-at-pm.me Is it 32 or 64 bit? libpeconv/tests/test_exceptions.cpp Line 25 in 93fe6ef
Which is a part of a testcase 18: Line 49 in 93fe6ef
For the 32-bit targets I didn't implement it yet (it is very different than in 64-bit, the same APIs are not available). But if your application is 64bit we can make a test, and check if running it with exceptions table installed could help.
This will load your app via loader with exceptions table set up. |
I'm late with my answer, but better late than never. "Some additional TLS code" is called NTSTATUS __stdcall LdrpHandleTlsData(PLDR_DATA_TABLE_ENTRY Module); // below Windows 8.1
NTSTATUS __thiscall LdrpHandleTlsData(PLDR_DATA_TABLE_ENTRY Module); // Windows 8.1+ In fact, most custom PE loaders try to find the address of this function via pattern scan in order to subsequently pass |
Using the sample loader project on an Unreal Engine 4 compiled binary crashes with a null access within the initterm call in __scrt_common_main_seh.
So far I haven't been able to locate the cause of this, I have tried disabling reloc but had no success.
Note that the function called by initterm uses TLS, I am thinking that maybe run_tls_callbacks may not work correctly or that some additional TLS code is required.
The text was updated successfully, but these errors were encountered: