免责声明:我不是在制作恶意软件。
我想知道是否可以阻止本地 PC 上的任何程序向 Internet 上的某个特定主机发送请求。是否可以在高于网卡驱动程序的级别上。
如我所见,例如浏览器打开一个套接字并通过它发送一些数据。我可以以某种方式访问它并用它做一些事情来阻止数据的发送吗?
如果可能的话,我应该走哪条路?
免责声明:我不是在制作恶意软件。
我想知道是否可以阻止本地 PC 上的任何程序向 Internet 上的某个特定主机发送请求。是否可以在高于网卡驱动程序的级别上。
如我所见,例如浏览器打开一个套接字并通过它发送一些数据。我可以以某种方式访问它并用它做一些事情来阻止数据的发送吗?
如果可能的话,我应该走哪条路?
您可以使用虚假路由规则从命令提示符轻松执行此操作。下面我将展示如何在 Windows 上执行此操作。您还可以修改此解决方案以在 Linux/Unix 上工作。
从以管理员身份运行的 CMD shell 提示符
第 1 步- 使用 nslookup 查找要阻止的主机的 IP 地址
C:\>nslookup www.stackoverflow.com
Server: myrouter.home
Address: 192.168.1.1
Non-authoritative answer:
Name: stackoverflow.com
Address: 69.59.197.21
Aliases: www.stackoverflow.com
在这里我们看到 www.stackoverflow.com 的 IP 地址为 69.59.197.21
第 2 步- 使用 打印系统的当前路由表route print -4
。查找“0.0.0.0 目的地”行并确定 Internet 的网关地址。
C:\>route print -4
IPv4 Route Table
===========================================================================
Active Routes:
Network Destination Netmask Gateway Interface Metric
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.10 10
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
192.168.1.0 255.255.255.0 On-link 192.168.1.10 266
192.168.1.10 255.255.255.255 On-link 192.168.1.10 266
192.168.1.255 255.255.255.255 On-link 192.168.1.10 266
224.0.0.0 240.0.0.0 On-link 127.0.0.1 306
224.0.0.0 240.0.0.0 On-link 192.168.1.10 266
255.255.255.255 255.255.255.255 On-link 127.0.0.1 306
255.255.255.255 255.255.255.255 On-link 192.168.1.10 266
===========================================================================
现在您可以看到我的网关是 192.168.1.1(我家路由器的 IP 地址)。很明显,我的网络子网是 192.168.1.*。ipconfig
(如果您还不知道子网的所有属性,也可以键入以发现它。)
第 3 步- 为您要阻止的 IP 地址插入虚假路由规则。诀窍是在不是网关的同一子网上选择一个 IP 地址。在这种情况下,192.168.1.2 是我子网上不存在的主机。
C:\> route add 69.59.197.21 MASK 255.255.255.255 192.168.1.2
OK!
您现在可以route print -4
再次键入以确认表中的虚假路由规则。这个条目说的是“当这个主机需要发送到 69.59.197.21 时,尝试通过 192.168.1.2 发送它”。这将迫使主机发送到不存在的无法路由的主机。
这就是它的全部。当我输入这个时,我实际上阻止了我的机器访问 www.stackoverflow.com。现在要撤消此操作,只需键入:
C:\>route delete 69.59.197.21
OK!
精美的印刷品:
许多站点将有超过 1 个 IP 地址。如果 NSLookup 不能一次告诉你所有的 IP 地址,那么你可能需要每隔几分钟定期调用 NSLookup 来查看更多的 IP 地址。通过一些实验,您可以使用此技术来阻止整个网络。
如果您的浏览器配置为使用代理服务器,此技术可能不起作用。
此外,这种技术不太可能在重新启动后继续存在。您可能会编写一个插入到 Windows 任务计划程序(或您的操作系统的其他适当的自动启动机制)中的脚本,该脚本在操作系统启动或用户登录时执行添加路由的工作。
我通过编辑我的C:\Windows\System32\drivers\etc\hosts
文件来做到这一点(阻止我的网络浏览器)。
您需要“以管理员身份运行”来编辑此文件。
我添加如下条目:
127.0.0.1 bad-domain.com
127.0.0.1 www.bad-domain.com
这会将请求重定向到 localhost。
编辑在系统重新启动后仍然存在。