Nmap Development mailing list archives

Re: Bug: nmap doesn't run on Windows XP anymore


From: Richard Browne <richard () timestone com au>
Date: Thu, 23 Jul 2015 11:01:11 +1000


Hi Richard, and thanks for the extra testing and info.  That is useful.  I'm not much of a Windows developer, so this 
is a little beyond my expertise.  But my understanding is that setting v120_xp rather than v120 forces us to use the 
old Windows SDK 7.1 rather than the newer 8.1.  While we apparently don't yet use any newer functions which aren't in 
the old API, I presume (hope) that the newer API has bug fixes and general improvements that MS has made over the 
years.  So I worry that using the old toolset in our main installer may make things a bit worse for the 96% (and 
growing) of us with a newer versions of Windows in order to support the 4% (and shrinking) still using XP.

Though if someone has any good evidence that v120_xp is just as good as v120 for the modern Windows users, that would 
definitely change the calculation.

Yes it’s true that setting v120_xp switches to the older Windows SDK. But it’s not the case that the “newer API” has 
bug fixes. The Windows SDK is basically just a huge collection of header files. The WIN32 API is baked into Windows. So 
no matter what SDK you use, your exe still calls the same functions exported from KERNEL32.dll for example. The newer 
SDK merely has new stuff in the headers (eg. function declarations).

Even using the older SDK 7.1, you can still use newer APIs if needed. The way this is done is to use GetProcAddress() 
at runtime to get the function pointer you are looking for, and have a fallback if the function is not available. 
Usually, even in a complex application, you don’t need to do this much. And as of right now, you don’t need to do it at 
all with nmap, because you aren’t calling any APIs that aren’t available in XPsp3.

Sure, if you want to use DirectX for example, using the old SDK is a problem. But that is a non-issue for nmap.


Also, we're working on a new and better version of WinPcap (Npcap) and it uses NDIS 6 and Windows Filtering Platform 
(WPF) and I don't think our current version of Npcap works on XP.   So that may become an issue if and when we 
integrate Npcap into Nmap.

Fair enough. But right now, supporting XPsp3 is trivial. Why not wait until there is an actual reason to stop support. 
That is my humble opinion.


We're working on the big Nmap 6.50 stable release and so perhaps the best approach is, after we release that, to 
create a special Windows XP compatible installer.  And maybe that will tide the remaining Windows XP users over until 
they upgrade to a more modern OS like Windows 7 or 8 or 10 or Linux or Mac.

I am an experienced Windows developer and I would be happy to help if needed.


_______________________________________________
Sent through the dev mailing list
https://nmap.org/mailman/listinfo/dev
Archived at http://seclists.org/nmap-dev/

Current thread: