0

免責事項: 私はマルウェアを作成していません。

ローカル PC 上のプログラムがインターネット上の特定のホストにリクエストを送信するのを防ぐことは可能でしょうか。ネットワークカードのドライバーよりも高いレベルで可能ですか。

私が見ているように、たとえば、ブラウザはソケットを開き、それを介してデータを送信します。何らかの方法でアクセスして、データの送信をブロックすることはできますか?

可能であればどちらに移動すればよいですか?

4

2 に答える 2

1

これは、偽のルート ルールを使用してコマンド プロンプトから簡単に実行できます。以下に、Windows でこれを行う方法を示します。このソリューションを変更して、Linux/Unix でも機能するようにすることもできます。

管理者として実行している CMD シェル プロンプトから

ステップ 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 destination」行を探して、インターネットのゲートウェイ アドレスを特定します。

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!

細字:

多くのサイトには複数の IP アドレスがあります。NSLookup が一度にすべての IP アドレスを通知しない場合は、数分ごとに定期的に NSLookup を呼び出して、より多くの IP アドレスを表示する必要があります。いくつかの実験により、この手法を使用してネットワーク全体をブロックできます。

ブラウザーがプロキシ サーバーを使用するように構成されている場合、この手法は機能しない可能性があります。

また、この手法は再起動後は存続しない可能性があります。OS の起動時またはユーザーのログイン時にルートを追加する作業を行う Windows タスク スケジューラ (または OS の他の適切な自動起動メカニズム) に挿入されるスクリプトを作成することができます。

于 2012-12-27T07:26:26.500 に答える
0

私は自分のC:\Windows\System32\drivers\etc\hostsファイルを編集してそれを行います (Web ブラウザをブロックします)。

このファイルを編集するには、「管理者として実行」する必要があります。

次のようなエントリを追加します。

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

これにより、リクエストが localhost にリダイレクトされます。

編集は、システムの再起動後も維持されます。

于 2014-01-06T17:52:02.390 に答える