0

免责声明:我不是在制作恶意软件。

我想知道是否可以阻止本地 PC 上的任何程序向 Internet 上的某个特定主机发送请求。是否可以在高于网卡驱动程序的级别上。

如我所见,例如浏览器打开一个套接字并通过它发送一些数据。我可以以某种方式访问​​它并用它做一些事情来阻止数据的发送吗?

如果可能的话,我应该走哪条路?

4

2 回答 2

1

您可以使用虚假路由规则从命令提示符轻松执行此操作。下面我将展示如何在 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 任务计划程序(或您的操作系统的其他适当的自动启动机制)中的脚本,该脚本在操作系统启动或用户登录时执行添加路由的工作。

于 2012-12-27T07:26:26.500 回答
0

我通过编辑我的C:\Windows\System32\drivers\etc\hosts文件来做到这一点(阻止我的网络浏览器)。

您需要“以管理员身份运行”来编辑此文件。

我添加如下条目:

127.0.0.1   bad-domain.com
127.0.0.1   www.bad-domain.com

这会将请求重定向到 localhost。

编辑在系统重新启动后仍然存在。

于 2014-01-06T17:52:02.390 回答