我正在学习 TCP/IP 和 (Berkeley/UNIX) 套接字编程。假设我有两种情况:
1)我用 C 语言编写了两个程序,一个客户端和一个服务器,并将它们各自绑定到同一(Linux)主机上的一个非知名端口,并使用我的(新手)C 技能尝试交换数据。
2) 我在 Linux 上运行服务器,并从位于同一 LAN(在 NAT 之后)的 Windows 上运行客户端。我认为这意味着 Windows 上的端口是“主动打开”的?(请注意,我对 WinSock 或绕过 NAT 一无所知。)
在每种情况下,是否可以想象一些机器人可以在其中一个或两个程序在 NAT 后面运行时扫描开放端口?如果是这样,攻击者是否有办法查看我正在运行的自定义程序的来源并利用滥用的指针、缓冲区溢出等?这是一个家庭网络,没有理由让任何人专门针对它。