Программная смена MAC адреса
Почему-то считается, что MAC адрес компьютера нельзя изменить. Но это не совсем так. Вернее совсем не так. Конечно, в каждой сетевой карте производителем прошит несменяемый MAC адрес. Но при загрузке драйвера сетевой карты в среде Windows происходит просмотр реестра на наличие некоторых параметров. Если такие параметры найдены, то драйвер использует MAC адрес из реестра.
Что это за параметры? Раздел: “HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\00XX - где XX - номер конкретного сетевого адаптера. Здесь надо добавить значение "NetworkAddress" типа REG_SZ - желаемое значение MAC адреса. В этом же разделе в части ...\Ndi\params необходимо создать раздел "NetworkAddress" со следующими значениями (типа REG_SZ):
Default – значение MAC адреса по умолчанию в HEX виде;
LimitText = 12 – длина MAC Адреса;
Optional =1/0 – если 1 - то опционально, если 0 – то обязательно;
ParamDesc= любой текст, краткое описание;
Type=edit – означает, что можно редактировать;
UpperCase=1 – автоперевод в верхний регистр.
Итого - для смены MAC адреса надо просто внести изменения в реестр и перезапустить драйвер сетевой карты.
Перезапуск драйвера сетевой карты производится вызовом функций SetupAPI: SetupDiGetClassDevs, SetupDiEnumDeviceInfo, SetupDiGetDeviceRegistryProperty, SetupDiSetClassInstallParams, SetupDiCallClassInstaller
И все! Новый MAC адрес установлен!