update system DLL range logic for 64-bit OSes#307
update system DLL range logic for 64-bit OSes#307jdu2600 wants to merge 1 commit intomicrosoft:mainfrom
Conversation
|
This breaks support for Windows 7, |
|
@Mauler125 Was this Windows 7 x86? Lines 78 to 84 in 4ed81f1 |
|
@jdu2600 This was on the latest version of Windows 7 x64 (SP1 with all updates), I think the ranges are different on Windows 7, and changed in Windows 8 as you mentioned. I hadn't had the chance to debug this myself yet. Some of our users host a game server on Windows 7 x64 which is where this was being reported from. These changes however do seem to work perfectly on Windows 10 and Windows 11 for the 2 months we have it implemented and tested; not a single issue has been encountered from it yet. |
Weird, I've checked "Windows Internals 6th" (corresponding to Win7) and analyzed |
|
In Vista and Win7 (NT6.0 and NT6.1), ASLR can be turned off by registry:
I think there's a chance this could be causing this issue. |
Sorry for my later responce. Today I did some research again on this issue and it was indeed caused by having ASLR disabled system-wide using the mentioned registry value. Your recent changes on KNSoft's SlimDetours does fix the issue as far as I've been able to test it. I will continue testing it and report any issues if I encounter them. |
Thanks, if still encounter the same problem, try to remove this block, I don't have 100% confidence in this. |
Hey Detours folks,
Just a couple of suggestions for choosing the trampoline location.
The X86 range reserved for system DLLs is not up to date.
The X64 "not +/- 1GB of target" heuristic to avoid the range used by system DLLs is not entirely robust. Instead we could replace this with a "not 1GB after ntdll" heuristic.