Import lookup fixup

This commit is contained in:
Sajid 2024-09-24 16:30:26 +06:00
parent 6bddfaa23d
commit 4453d56df0

@ -125,12 +125,13 @@ Image Xex2LoadImage(const uint8_t* data)
for (size_t im = 0; im < library->NumberOfImports; im++) for (size_t im = 0; im < library->NumberOfImports; im++)
{ {
auto originalThunk = (XEX_THUNK_DATA*)image.Find(descriptors[im].FirstThunk); auto originalThunk = (XEX_THUNK_DATA*)image.Find(descriptors[im].FirstThunk);
auto thunkType = originalThunk->Function >> 24; auto originalData = originalThunk;
originalData->Data = std::byteswap(originalData->Data);
if (thunkType != 0) if (originalData->OriginalData.Type != 0)
{ {
uint32_t thunk[4] = { 0x00000060, 0x00000060, 0x00000060, 0x2000804E }; uint32_t thunk[4] = { 0x00000060, 0x00000060, 0x00000060, 0x2000804E };
auto name = names->find(originalThunk->OriginalData.Ordinal); auto name = names->find(originalData->OriginalData.Ordinal);
if (name != names->end()) if (name != names->end())
{ {
image.symbols.emplace(name->second, descriptors[im].FirstThunk, sizeof(thunk), Symbol_Function); image.symbols.emplace(name->second, descriptors[im].FirstThunk, sizeof(thunk), Symbol_Function);