Skip to content

Commit bb249e5

Browse files
committed
Fix ProcessAttachCalled flag
1 parent ff8ed2f commit bb249e5

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

MemoryModule/LdrEntry.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,8 @@ BOOL NTAPI RtlInitializeLdrDataTableEntry(
151151
entry->DdagNode->LoadCount = 1;
152152
if (IsWin8) ((_LDR_DDAG_NODE_WIN8*)(entry->DdagNode))->ReferenceCount = 1;
153153
entry->ImageDll = entry->LoadNotificationsSent = entry->EntryProcessed =
154-
entry->InLegacyLists = entry->InIndexes = entry->ProcessAttachCalled = true;
154+
entry->InLegacyLists = entry->InIndexes = true;
155+
entry->ProcessAttachCalled = headers->OptionalHeader.AddressOfEntryPoint != 0;
155156
entry->InExceptionTable = !(dwFlags & LOAD_FLAGS_NOT_ADD_INVERTED_FUNCTION);
156157
entry->CorImage = CorImage;
157158
entry->CorILOnly = CorIL;
@@ -184,7 +185,10 @@ BOOL NTAPI RtlInitializeLdrDataTableEntry(
184185
LdrEntry->EntryPoint = (PLDR_INIT_ROUTINE)((size_t)BaseAddress + headers->OptionalHeader.AddressOfEntryPoint);
185186
LdrEntry->ObsoleteLoadCount = 1;
186187
if (!FlagsProcessed) {
187-
LdrEntry->Flags = LDRP_IMAGE_DLL | LDRP_ENTRY_INSERTED | LDRP_ENTRY_PROCESSED | LDRP_PROCESS_ATTACH_CALLED;
188+
LdrEntry->Flags = LDRP_IMAGE_DLL | LDRP_ENTRY_INSERTED | LDRP_ENTRY_PROCESSED;
189+
190+
if (headers->OptionalHeader.AddressOfEntryPoint != 0)LdrEntry->Flags |= LDRP_PROCESS_ATTACH_CALLED;
191+
188192
if (CorImage)LdrEntry->Flags |= LDRP_COR_IMAGE;
189193
}
190194
InitializeListHead(&LdrEntry->HashLinks);

0 commit comments

Comments
 (0)