This has been questioning me for a while...

I understand how DNS tunneling works, the mechanism of the exact tunneling isn't the problem, but I'm asking how you get client programs to send data through the tunnel.

VPNs and other tunnels solve this by creating a virtual Network connection in Windows, you just get your apps to use that.

But consider DNS tunneling in Windows, where would you start? Would you need the DDK or something?