How to upgrade Nmap to a new WinPcap release (2009) --------------------------------------------------- 1) Download the latest version of WinPcap from www.winpcap.org and make a note of the version (for example 4.1). 2) Update the LICENSE file, if necessary. I couldn't find a plain WinPcap license file anywhere. There's an HTML version at http://www.winpcap.org/misc/copyright.htm. You can copy and paste the license text from the installer into the LICENSE file which should be saved as PC file format (not UNIX) and ANSI encoding (not UTF-8). 3) Extract all the files from the setup file using 7-Zip (http://www.7-zip.org/). Enter the $SYSDIR subdirectory. One by one, extract (you can drag and drop) the different copies of the files. Copy the files into the mswin32/winpcap directory (you may need to install WinPcap in order to determine the correct files; if you get two similar looking files it's usually the smaller one). The installed files at time of writing are: C:\Program Files\WinPcap\rpcapd.exe C:\Windows\system32\Packet.dll C:\Windows\system32\pthreadVC.dll C:\Windows\system32\wpcap.dll C:\Windows\system32\drivers\npf.sys The Vista version of Packet.dll needs to be extracted into the mswin32/winpcap/vista subdirectory. Right click on each Packet.dll, click "Properties", then select the "Version" tab. The "Description:" field will have a string containing "NT4", "NT5", or "Vista". We don't support NT4, so those files are not required. The AMD64 version of npf.sys needs to be extracted into the mswin32/winpcap/x64 subdirectory. Right click on each npf.sys, click "Properties", then select the "Version" tab. The "Description:" field will have a string containing "AMD64". 4) Open winpcap-nmap.nsi. Change the version for the following lines: Name "WinPcap (Nmap) X.X.X" OutFile "winpcap-nmap-X.XX.exe WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\winpcap-nmap" "DisplayName" "winpcap-nmap X.XX" 5) Get the internal 'FileVersion' from wpcap.dll. Right-click on wpcap.dll and select "Properties", then select the "Version" tab. Copy the number there into this part of winpcap-nmap.nsi: var /GLOBAL my_ver StrCpy $my_ver "X.X.X.X" <-- file version goes here 6) Generate installer exe by compiling winpcap-nmap.nsi using the running the command makensis winpcap-nmap.nsi makensis is part of the "Nullsoft Scriptable Install System" at http://nsis.sourceforge.net/. 7) Give the installer a test, make sure the correct version appears in the installer's name and in Add/Remove Programs. You may also want to try installing it when it is already installed or an older version is installed. 8) Open mswin32/nsis/Nmap.nsi and update the references to the winpcap installer's name. You should only have to change the version number. The section you need to look at starts like this: Section "WinPcap X.X" SecWinPcap 9) Download the WinPcap developer package (http://www.winpcap.org/devel.htm) and replace all the files in mswin32/lib/ with the new versions inside the package. 10) Build the Nmap installer. The best way to do this is to run "make" in the mswin32 directory. This will build Nmap and run makensis for you. Test the installer. You may want to try it with Nmap already installed and with different versions installed. Also check that everything appears in Add/Remove Programs correctly. 11) Test Nmap functionallity that uses WinPcap (raw packet scans, raw packet pings, traceroute). 12) Sit back and have a cup of coffee, you deserve it :)