Had an interesting exchange on twitter today re: Windows security: https://twitter.com/CopperheadOS/status/745962747117076480
Seems that dynamicbase
is not enough and:
- Something called
highentropyva
is necessary for (secure) ASLR on 64-bit. - Standard link/build flags of mingw-w64 prevent ASLR from actually being used, due to lack of an executable relocation table.
- Rust worked around some mingw-w64 ASLR bugs here https://github.com/rust-lang/rust/commit/96f5eba4f5603c612464d6b1e961677e9d7084d3 and https://github.com/rust-lang/rust/issues/17684 (ASLR on Windows breaks thread-local variables)
At the least it should be verified using a debugger or something like sysinternals that the base address changes every invocation.