> A funny thing is that a fully static LTO processed and inlined app is extremely hard to crack once ASLR is in play since you get no returns and get to mess only with what is inside.
How often does that actually happen? On macOS and Windows the answer should be "never" since the syscall ABI is not stable...
On both of these platforms, ABIs and APIs are stable until you get to drawing. Which means you should probably use real process separation for the GUI - it has to be linked dynamically.
It is stable in the terms of "actually didn't change in a way to break apps" not "guaranteed to be kept compatible".
Last time they did a major break there is in Windows 2000. I recommend reading up on how LPC works.
There have been extensions though. Such as very useful pico processes in Windows 10...
Major extensions in Vista too, related to security and async operation.
I recommend j00ru's blog as a good starting point. And of course Windows Internals books.
How often does that actually happen? On macOS and Windows the answer should be "never" since the syscall ABI is not stable...