Lower than low level common bsd sockets
-
02-07-2019 - |
Question
How do you do low low level sockets in C, example: actually sending a SYN.
Solution
What you actually want is a raw socket ... you can completely control the headers and flags with the raw socket interface, but programming them is much more challenging. Here's a great tutorial to get you started: http://www.cs.binghamton.edu/~steflik/cs455/rawip.txt.
OTHER TIPS
Raw sockets are your friend.
There have been some links to useful information on this question.
Also consult Chapter 25 "Raw sockets" of Steven's "Unix Network Programming"
If you're attempting cross platform code you may find libpcap a useful alternative.
You want to use raw sockets. In *nix, you need to be root to be able to create raw sockets. I'm not sure if it's possible in Windows.
I suspect the nmap sources would be an excellent place to look.