6

I want to completely disable the whole syswow64. My goal is to make it impossible to run any 32-bit application, or load any 32-bit DLL on a 64-bit windows system. Similarly to the old 16-bit Windows applications, which can be emulated on some old 32-bit system, but not any more on 64-bit.

On Linux, I can simply disable the 32-bit emulation either in the kernel compilation config or by some sysctl settings. But what can be done on Windows?

Is it somehow possible?

I know, that any 32-bit program—and maybe some 64-bit—won’t work any more, but it is not a problem to me. Actually, it is my goal.

The goal is to experiment in a 64-bit only Windows environment. Initiating a debate about its usability, or it is needed or not, is highly offtopic here. I want a solution, not a debate.

Giacomo1968
  • 58,727
peterh
  • 2,782

3 Answers3

5

The bruteforce method would be to use an AppInit DLL whose 32 bits version crashes on load. Since every 32 bit process would load it, they all crash before startup. No direct harm to 64 bits programs as they'd refuse to load the 32 bit DLL anyway, but of course all those 32 bit installers will refuse to run etc.

MSalters
  • 8,283
3

The simplest method of achieving this is not allowing applications to be installed by normal users. If you only install 64-bit applications, then only 64-bit applications will be running, except those 32-bit processes still used by Windows, of course.

It isn't possible to disable the WoW64 subsystem, which isn't "emulation", on a consumer version of Windows. It is possible with Windows Server. I am going to assume it is a Windows Feature on Windows Server which can simply be disabled. The linked article provides the command, which is version-specific for an older version of Windows Server.

Ramhound
  • 44,080
1

This is possible by deleting SysWow64 and its emulator modules from Windows, However this needs to be done through a advanced tool like NTLite. But I've done it and it works. Same as WinPE x64

Cyclone
  • 21