Buffer overflows have been prevented on many Unix systems by things like address space randomization, randomizing where libraries are loaded, etc. Windows is a) insecure by design, b) insecure by architecture (the GUI graphics drivers run INSIDE the kernel), c) insecure by implementation .
I'm just curious who writes apps that crash on buffer overflows. I'm retired from programming, but I would never have released a program that couldn't handle arbitrary input. Most of the stuff I wrote edited input at the keystroke level.