Version 3.81.01 turns on the ASLR bit for SbieDll, for both 32-bit and 64-bit versions of the DLL, and so far I haven't run into any problems with that.
I want to retract what I said earlier:
| tzuk wrote: |
| Nevertheless people seem to be concerned, so I said I wouldn't mind adding ASLR at some point. But it turns out you can't limit ASLR to select a random DLL address in the lower 2GB of the address space. And for various reasons, SbieDll needs to be loaded in the lower 2GB of the address space. So this means that I can turn on the ASLR bit in the 32-bit SbieDll, but not in the 64-bit DLL. For the 64-bit DLL, I would have to rework SbieDll a bit, so it can load in the higher addresses. And test this change. |
Turns out Windows ASLR takes that under consideration and if the original base address is in the lower 2GB, which is the case for the 64-bit SbieDll, then ASLR randomizes the address in the lower 2GB of the address space. So that means I really only had to turn on one bit somewhere and ASLR takes care of everything else. I apologize for not looking into this earlier, I just assumed the randomization would not care about low-2GB DLLs.
(I removed some contentious posts in this topic, in the interest of a smooth sailing. I hope no one minds.)