I always wondered how software firewalls work under covers, and would like to be able to write my own tools for analyzing or intercepting packets before sending them or receiving an OS. I am familiar with the basic principles of networking; I just don't know where to start if I want to write software that fits into the network stack, similar to how firewalls do it. Can someone give me some pointers?
I would be particularly interested if this can be done using C #, but I can do other languages as well. I mainly focus on Windows, but would like to know if there are cross-platform libraries there.
EDIT Using the NDIS driver (like Wireshark) sounds like a good option, and Vista's filtering options sound neat, but how do firewalls do it, say, in Windows XP? They do not need to install a special driver that I know of.
Phil source
share