0

我想构建一个 MAC 地址欺骗器,每次我的计算机启动时都会吐出一个随机的 MAC 地址。我的问题是我在 linux 中的所有计算机程序如何以及从哪里提取我的 MAC 地址。我知道我的 wi-fi 网络驱动程序负责告诉我的网卡要发送什么,但是那个驱动程序从哪里得到我的 MAC 地址?我也知道MAC地址叫做硬件地址,但是既然可以欺骗MAC地址,那只能说明发送信息时不必使用我网卡上的MAC地址。我也想知道如何做到这一点。

此外,当随机化我的 MAC 地址时,这应该适用于所有其他程序,例如我的网络浏览器和我使用的任何其他程序,这不应该是一个问题,因为那真的是一个应用层......而不是链接层

谢谢

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 的东西(例如路由器、交换机等)。

要设置网卡的 MAC 地址,您可以使用 ifconfig 命令:(ifconfig eth0 hw ether ##:##:##:##:##:##您可能必须先关闭网络,设置它,然后再启动它。IE ifconfig eth0 down; ifconfig eth0 hw ether ##:##:##:##:##:#; ifconfig eth0 up:)

于 2012-05-30T21:04:39.223 回答