0

コンピューターが起動するたびにランダム化された MAC アドレスを吐き出す MAC アドレス スプーファーを構築したいと考えています。私の質問は、Linux のすべてのコンピューター プログラムがどのようにして、どこから私の MAC アドレスを取得するのかということです。Wi-Fi ネットワーク ドライバーがネットワーク カードに何を送信するかを伝える役割を担っていることはわかっていますが、そのドライバーはどこから MAC アドレスを取得するのでしょうか? MAC アドレスがハードウェア アドレスと呼ばれることも知っていますが、MAC アドレスを偽装することは可能であるため、情報を送信するときにネットワーク カードの MAC アドレスを使用する必要がないことを意味するにすぎません。これもどのように行うことができるか知りたいです。

また、MACアドレスをランダム化するとき、これはWebブラウザなどの他のすべてのプログラムで動作するはずです。これは、実際にはアプリケーション層であり、リンク層ではないため、問題にはなりません。

ありがとう

4

2 に答える 2

3

MAC アドレスは通常、ネットワーク カードのある種の EEPROM に保存されます。このアドレスは、ネットワーク アダプタ ドライバによる初期化中に読み取られ、ネットワーク パケットの組み立て/送信時に MAC 層によって使用されます。

使用される MAC アドレスは、コマンド ラインで「hw」オプションを介して「ifconfig」を使用して変更できます。

hw class address

Set the hardware address of this interface, if the device driver
supports  this  operation.   The keyword must be followed by the
name of the hardware class and the printable ASCII equivalent of
the  hardware  address.   Hardware  classes  currently supported
include ether (Ethernet), ax25 (AMPR AX.25), ARCnet  and  netrom
(AMPR NET/ROM).

ifconfig は基本的に SIOCSIFHWADDR ioctl ( http://linux.die.net/man/7/netdeviceを参照) を使用して MAC アドレスを設定します。

場合によっては、ネットワーク アダプター自体に保存されている MAC アドレスを変更することさえ可能かもしれません。http://linux.die.net/man/8/ethtoolを参照してください。

于 2012-05-30T21:06:03.413 に答える
1

MAC アドレスを気にするのは、NIC 自体だけです。MAC アドレスを使用するプログラム (ブラウザーを含む) が存在しないようにする必要があります。MACアドレスは物理層で使用されるため、MACを読み取るのはこれだけです(ルーター、スイッチなど)。

NIC の MAC アドレスを設定するには、ifconfig コマンドを使用できますifconfig eth0 hw ether ##:##:##:##:##:##(最初にネットワークを停止し、設定してから起動する必要がある場合があります。IE ifconfig eth0 down; ifconfig eth0 hw ether ##:##:##:##:##:#; ifconfig eth0 up:) 。

于 2012-05-30T21:04:39.223 に答える