On Sun, Nov 03, 2002 at 11:40:08PM -0500, Farshad wrote: > Even a hint like how ethereal is intercepting the packets on their > way to the upper layers Ethereal doesn't itself contain any code to intercept packets on their way to the upper layers - that's done by the libpcap/WinPcap library, which Ethereal uses to capture packets. tcpdump, snort, and a number of other programs use libpcap as well. The way libpcap does that is: on UNIX, it uses some mechanism provided by the OS for doing so; on Windows, WinPcap consists of: a device driver; a library for communicating with that driver; a port of libpcap to Windows; and it uses the driver for doing so (the driver uses OS mechanisms). (I.e., libpcap doesn't do that, either - it relies on OS kernel code to do that. It just sets up that code and reads the packets.) > and what hooks it uses in the (Linux) kernel On Linux, libpcap uses PF_PACKET sockets on 2.2 and later kernels, and SOCK_PACKET sockets on 2.0[.x] kernels. See the "packet(7)" man page.
Powered by MHonArc 2.6.10