1

我正在通过 bootcamp 在 Macbook 上使用 Visual Studio 2010 和 Windows XP。

我意识到我无法通过注册表更改 MAC 地址(通过RegSetValueEx),如果我选择的适配器是集成到笔记本电脑的适配器,例如:用于 macbook 的 Broadcom 无线适配器。但是某些值,如 AA-BB-CC-DD- EE-FF 工作。

但是,如果我插入无线 USB 网络适配器,它就可以完美地工作。我的猜测是,问题不是我的代码,因为我尝试了从互联网上下载的其他代码,它是一样的。谁能解释为什么会这样?

4

2 回答 2

3

感谢您的回答,我设法解决了这个问题。AA-BB-CC-DD-EE-FF-GG 因为运气好而工作。这个想法是 Windows 7 施加了一些限制,您可以在 Wikipedia 页面上看到:http ://en.wikipedia.org/wiki/MAC_spoofing 。因此,“在 Windows 7 下,可以设置的欺骗地址的可能范围仅限于无线和有线网络适配器。要在 Windows 7 中使用,欺骗 MAC 地址应具有 0 作为最低有效位(单播)和 1作为第二个半字节中的第二个最低有效位(本地管理)。因此,第二个半字节的可能值被限制为 2、6、A 和 E。正如我从页面http://en.wikipedia.org/wiki/MAC_address中看到的那样,这两个指定位对应于 MAC 地址的第二个字符,因此,具有第二个字符 2、6、A 或 E 的任何地址都有效。没有其他人可以。

于 2011-02-26T16:11:47.020 回答
0

自定义 MAC 地址可能需要符合以下格式:

  • x2-xx-xx-xx-xx-xx-xx
  • x6-xx-xx-xx-xx-xx-xx
  • xA-xx-xx-xx-xx-xx-xx
  • xE-xx-xx-xx-xx-xx-xx

x可以是从 0 到 F 的任意数字。


原因如下:

  1. MAC 地址 - I/G 位

    MAC 地址的第一个八位字节的最低有效位称为 I/G(个人/组)位。

    • 0:单播 MAC 地址
    • 1:组播 MAC 地址

    自定义mac地址的I/G位需要设置为0。

  2. MAC 地址 - U/L 位

    MAC 地址的第一个八位字节的第二低位称为 U/L(通用/本地)位。

    • 0:通用管理的 MAC 地址
    • 1:本地管理的 MAC 地址

    自定义 mac 地址的 U/L 位需要设置为 1。

于 2021-01-28T05:22:14.557 回答