Nmap/Old Windows> WhileNmap supports all modern versions of Windows, it no longer officially
supports some which are so old that even Microsoft has ceased all
support for them. This includes Windows NT, Windows 2000, and Windows
XP.
We would highly recommend upgrading any Windows systems that old for security purposes if nothing else. But if you must run Nmap on such a system, the easiest option is to use use an older Nmap>The latest version reported to work on Windows XP SP2/SP3 is Nmap
6.47. For older versions of Windows such as Windows 2K or XP without
Service Pack 2, we recommend Nmap 5.35DC1 or older.
When using Nmap on Windows 2000 (either an old version as
described above, or a newer version as described later on this page), a
couple dependencies from Microsoft may need to be installed first.
Those are the Windows Installer 3.1 (v2) and the Security Update for Windows 2000 (KB835732). After installing these, follow the general instructions in the following two sections to install Nmap.
Even current versions of Nmap may be usable with Windows 2000 or
XP if compiled the right way. First familiarize yourself with Nmap's normal Windows compilation instructions. Then follow these instructions first reported by David Millis:
Here's exactly what I did to get static 2010-built executables that work under earlier Windows versions. I've hardly
ever touched VC++, so pardon my repeated static-setting and rebuild lines at the end, if there's an abridged
equivalent. :)
Open nmap-5.51/mswin32/nmap.sln
Solution-Configuration Manager: Active Config =>
ncat Project-Build Customizations...: masm = true (do before adding .asm's)
ncat Project-Add-New Item (C++): pointer.asm
.model flat
.data
__imp__EncodePointer () 4 dd dummy
__imp__DecodePointer () 4 dd dummy
EXTERNDEF __imp__EncodePointer () 4 : DWORD
EXTERNDEF __imp__DecodePointer () 4 : DWORD
.code
dummy proc
mov eax, [esp+4]
ret 4
dummy endp
end
ncat Project-Properties-Linker-System: Minimum Req Version = 5.0
nmap and nping worked the same way. Libs get MT. Executables get the MinReq and Asm as well.
The TedWVC blog has a useful guide on Win2K compatability when compiling with Visual C++ 2010.