4 ms·
> (sidenote: even if you don't have a dynamically linked program, you still will need dynamic loading - modern statically linked binaries use a feature called A
by AnonHP 3y ago
> (sidenote: even if you don't have a dynamically linked program, you still will need dynamic loading - modern statically linked binaries use a feature called Address Space Layout Randomization which (ab)uses the implementation of the dynamic loader to randomize where the symbols of your "statically" linked binary are going to be once the program is loaded into memory).
This is news to me. Wouldn’t a statically linked binary be just machine code with all the libraries and the addresses resolved at link time (i.e., no symbols to resolve at runtime) and bundled within the single executable file by the linker? Or are you referring to specific language implementations of “static” (since it’s in quotes) binaries?
I haven’t read in-depth about ASLR, but I thought it was mainly for libraries loaded dynamically (at runtime) where better security could possibly be achieved by the randomization of addresses. The OS has had the capability to load the (main) executable at any address even before ASLR.
Any pointers to deeper reading material on this?