When a new executable (.exe-file) is launched, Windows will call a variant of the
CreateProcessInternalW function from the KERNEL32.DLL library, which will eventually call the
BasepIsImageVersionOk function which will detect if that executable is build for NT version 5.2 or lower and allow the executable to run.
When this is not the case, thus in case of a Windows 10 (NT version 10) executable: Windows will stop the execution with a popup-message: ...exe is not a valid Win32 application.
Another way around this would be by modifying the .exe-file itself, through changes in the extended PE-header (NT-header), more information can be found here https://ntcore.com/?p=458
A x86 version of Windows 2003 / XP SP1 with source code available: see build-win2k3
\base\win32\client\process.clook for the
- and comment out the second
if-test like so:
- Overwrite the created
C:\WINDOWS\SYSTEM32folder of your Windows XP installation.