Does ASLR mean rebasing dlls isn't required? Does ASLR mean rebasing dlls isn't required? windows windows

Does ASLR mean rebasing dlls isn't required?


So based on my reading you should not have a problem. ASLR causes the the dll's to be loaded to semi random memory address and should not just start rebasing for every process. If you want to check memory use of dll's there is a free tool called MassiveRebase that lets you dynamically load two dll's and view info about their memory use. The was designed to view changes that aslr may have on memory. The tool and more about it can be found here: http://www.tmurgent.com/appv/index.php/en/resources/tools/137-massive-rebase

Hope this helps.


Rebasing is still helpful. When the operating system loads, it applies a fixed random value to the DLL base.

The result is that the location a DLL is loaded to, is typical for a single boot, but different between machines and boots.

This means that a given DLL in lots of processes can be shared between processes, as all its code data is shared with the same value.

When a DLL is moved because it's address space is taken, it has to modify the fixups, and less of the DLL is shared, increasing system load.

If your DLL is not shared, then it does not affect resources.

The cost of fixing up a DLL used to be cheaper if it was loaded to the correct place, not sure if that is true for ASLR, but may still save resource loading time.