[Winpcap-users] Windows 10 support for WinPcap

食肉大灰兔V5 hsluoyz at gmail.com
Thu Feb 4 12:04:53 UTC 2016


Hi Sven,

Npcap (https://github.com/nmap/npcap) has better performance because of
NDIS 6. It also has several new features:


   1. *NDIS 6 Support*: Npcap makes use of new LWF driver in Windows Vista
   and later (the legacy driver is used on XP). It's faster than the
legacy *NDIS
   5 Intermediate*
   <https://msdn.microsoft.com/en-us/library/windows/hardware/ff557012(v=vs.85).aspx>
technique.
   One reason is that packet data stucture has changed (fromNDIS_PACKET to
   NET_BUFFER_LIST) since Vista and NDIS 5 needs to handle extra packet
   structure conversion.
   2. *"Admin-only Mode" Support*: Npcap supports to restrict its use to
   Administrators for safety purpose. If Npcap is installed with the
option *Restrict
   Npcap driver's access to Administrators only* checked, when a non-Admin
   user tries to start a user software (Nmap, Wireshark, etc), the *User
   Account Control (UAC)*
   <http://windows.microsoft.com/en-us/windows/what-is-user-account-control#1TC=windows-7>
dialog
   will prompt asking for Administrator privilege. Only when the end user
   chooses Yes, the driver can be accessed. This is similar to UNIX where
   you need root access to capture packets.
   3. *"WinPcap Compatible Mode" Support*: "WinPcap Compatible Mode" is
   used to decide whether Npcap should coexist With WinPcap or be compatible
   with WinPcap. With "WinPcap Compatible Mode" OFF, Npcap can coexist with
   WinPcap and share the DLL binary interface with WinPcap. So the
   applications unaware of Npcap *SHOULD* be able to use Npcap
   automatically if WinPcap is unavailable. The applications who knows Npcap's
   existence can choose to use Npcap or WinPcap first. The key about which is
   loaded first is *DLL Search Path*
   <https://msdn.microsoft.com/en-us/library/windows/desktop/ms682586(v=vs.85).aspx>.
   With "WinPcap Compatible Mode" OFF, Npcap installs its DLLs into
   C:\Windows\System32\Npcap\ instead of WinPcap's C:\Windows\System32\. So
   applications who want to load Npcap first must make
   C:\Windows\System32\Npcap\ precedent to other paths in ways such as
   calling*SetDllDirectory*
   <https://msdn.microsoft.com/en-us/library/ms686203.aspx>, etc. Another
   point is Npcap uses service name npcap instead of WinPcap's npf with
   "WinPcap Compatible Mode" OFF. So applications using net start npf for
   starting service must use net start npcap instead. If you want 100%
   compatibility with WinPcap, you should install Npcap choosing "WinPcap
   Compatible Mode" (Install Npcap in WinPcap API-compatible Mode). In this
   mode, Npcap will install its Dlls in WinPcap's C:\Windows\System32\and
   use the npf service name. It's notable that before installing in this
   mode, you must uninstall WinPcap first (the installer wizard will prompt
   you that).
   4. *Loopback Packets Capture Support*: Now Npcap is able to see Windows
   loopback packets using *Windows Filtering Platform (WFP)*
   <https://msdn.microsoft.com/en-us/library/windows/desktop/aa366510(v=vs.85).aspx>
technique.
   After installation, Npcap will create an adapter named Npcap Loopback
   Adapter for you. If you are a Wireshark user, choose this adapter to
   capture, you will see all loopback traffic the same way as other
   non-loopback adapters. Try it by typing in commands like ping
127.0.0.1 (IPv4)
   or ping ::1 (IPv6).
   5. *Loopback Packets Send Support*: Besides loopback packets capturing,
   Npcap can also send out loopback packets based on *Winsock Kernel (WSK)*
   <https://msdn.microsoft.com/en-us/library/windows/hardware/ff556958(v=vs.85).aspx>
technique.
   A user software (e.g. Nmap) can just send packets out using Npcap
   Loopback Adapter like other adapters. Npcap Loopback Adapter will
   automatically remove the packet's Ethernet header and inject the payload
   into Windows TCP/IP stack, so this kind of loopback packet never go out of
   the machine.


I actually didn't add a function about making user software getting
notified about media state changes. From my knowledge I don't know there's
any support of such a function in libpcap. libpcap is an interface standard
followed by WinPcap/Npcap. However, I think you can do it using native
Windows APIs (like Receiving Notification of Network Events in
https://msdn.microsoft.com/en-us/library/windows/desktop/aa366334(v=vs.85).aspx
). And if you have any improvement advice about Npcap, I will consider it:)


Cheers,
Yang


On Thu, Feb 4, 2016 at 7:18 PM, Sven Kerschbaum <svkers at gmail.com> wrote:

> Oh, I have to admit that I did not try it on an update to date Windows 10
> system... Thanks for the hint that this was only an issue in early Windows
> 10 versions.
>
> I was also not aware of the Npcap. Thanks for pointing me to this fork!
> How does Npcap differ from WinPcap with respect to performance, feature? At
> least I am missing the possibility to get notified about media state
> changes (connected, disconnected) in WinPcap. Does Npcap offer such a
> functionality?
>
> Furthermore: Is WinPcap still under active development? Its last release
> was in 2013. Or I am better advised to rely on Npcap?
>
> Thank you!
> Best regards,
> SK
>
>
>
>
> 2016-02-04 11:08 GMT+01:00 Gisle Vanem <gvanem at yahoo.no>:
>
>> Sven Kerschbaum wrote:
>>
>> > is there already effort for getting WinPcap ready for Windows 10? As
>> Pascal Quantin already pointed out WinPcap does not
>> > run on Windows 10 due to the fact that the WinPcap driver is not an
>> NDIS 6 driver. Please find more information here:
>> > http://www.winpcap.org/pipermail/winpcap-users/2015-March/004936.html
>>
>> Really? All my WinPcap-based programs works fine here.
>> From 'sigcheck c:\WINDOWS\sysnative\drivers\npf.sys':
>>
>>         Verified:       Signed
>>         Signing date:   02.49 01.03.2013
>>         Publisher:      Riverbed Technology
>>         Company:        Riverbed Technology, Inc.
>>         Description:    npf.sys (NT5/6 AMD64) Kernel Driver
>>         Product:        WinPcap
>>         Prod version:   4.1.0.2980
>>         File version:   4.1.0.2980
>>         MachineType:    64-bit
>>
>>
>> The version and 'Signing date' is in accordance with what's on
>> winpcap.org.
>> An also:
>>
>> F:\> windump -Dv
>> 1. \Device\NPF_{E069AC87-4219-4F7E-9CA5-DE3FBA031CEF}    Descr: Microsoft
>>     Addr 0: 10.0.0.11 (mask 255.255.255.0)
>>     MAC-addr: 00:18:4D:00:DE:17, MTU 1514, link-type 802.3 over
>> Native802_11, DOWN, 54Mb/s (NDIS)
>>
>> 2. \Device\NPF_{990D25A5-6071-4C67-AC14-A5380B0FFDEC}    Descr: Microsoft
>>     Addr 0: fe80::8089:b86f:1ef6:347e (mask ::)
>>     Addr 1: fe80::8089:b86f:1ef6:347e (mask ::)
>>     MAC-addr: 00:15:83:12:37:2F, MTU 1514, link-type 802.3 over
>> Bluetooth, DOWN, 3Mb/s (NDIS)
>>
>> 3. \Device\NPF_{7BA27187-146B-4FB6-B4BA-DC5D218FB607}    Descr: Realtek
>> Ethernet Controller
>>     Addr 0: 10.0.0.10 (mask 255.255.255.0)
>>     MAC-addr: E0:3F:49:81:2E:EA, MTU 1514, link-type 802.3, UP, 100Mb/s
>> (NDIS)
>>
>> --------------
>>
>> I'm on Win 10. Version 1511 (OS-Build 10586.71).
>> Windows 10 build 10041 (as mention in that mail) is pretty old.
>>
>>
>>
>> --
>> --gv
>> _______________________________________________
>> Winpcap-users mailing list
>> Winpcap-users at winpcap.org
>> https://www.winpcap.org/mailman/listinfo/winpcap-users
>>
>
>
> _______________________________________________
> Winpcap-users mailing list
> Winpcap-users at winpcap.org
> https://www.winpcap.org/mailman/listinfo/winpcap-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winpcap.org/pipermail/winpcap-users/attachments/20160204/81f69e4e/attachment.html>


More information about the Winpcap-users mailing list