File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -265,27 +265,27 @@ NTSTATUS MemoryLoadLibrary(
265265 //
266266 // Reserve the address range of image
267267 //
268- LPBYTE base = (LPBYTE)VirtualAlloc (
269- LPVOID (old_header->OptionalHeader .ImageBase ),
270- old_header->OptionalHeader .SizeOfImage ,
271- MEM_RESERVE,
272- PAGE_EXECUTE_READWRITE
273- );
268+ LPBYTE base = nullptr ;
269+ if ((old_header->OptionalHeader .DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) == 0 ) {
270+ base = (LPBYTE)VirtualAlloc (
271+ LPVOID (old_header->OptionalHeader .ImageBase ),
272+ old_header->OptionalHeader .SizeOfImage ,
273+ MEM_RESERVE,
274+ PAGE_EXECUTE_READWRITE
275+ );
276+ }
274277 if (!base) {
275- if (old_header->OptionalHeader .DllCharacteristics & IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE) {
276-
277- base = (LPBYTE)VirtualAlloc (
278- nullptr ,
279- old_header->OptionalHeader .SizeOfImage ,
280- MEM_RESERVE,
281- PAGE_EXECUTE_READWRITE
282- );
283- if (!base) status = STATUS_NO_MEMORY;
284- }
278+ base = (LPBYTE)VirtualAlloc (
279+ nullptr ,
280+ old_header->OptionalHeader .SizeOfImage ,
281+ MEM_RESERVE,
282+ PAGE_EXECUTE_READWRITE
283+ );
284+ if (!base) status = STATUS_NO_MEMORY;
285+ }
285286
286- if (!NT_SUCCESS (status)) {
287- return status;
288- }
287+ if (!NT_SUCCESS (status)) {
288+ return status;
289289 }
290290
291291 //
You can’t perform that action at this time.
0 commit comments