conectividade

Como mudar o MAC Address de Placas de Rede

Neste texto, quando eu falar “MAC” estou me referindo a “endereço MAC” (MAC Address).

O método abordado aqui costuma ser chamado de “MAC spoofing”. Olhando rapidamente, este texto parece longo e complexo, mas é só porque eu explico em detalhes várias maneiras de fazer a mesma coisa. Depois que você entender, verá que é tudo muito simples.

Este texto aborda a mudança do MAC de placas de rede em computadores rodando Windows XP. A mudança do MAC em aparelhos como modems e roteadores não pode ser feita por este processo. Por sorte, muitos modems e roteadores tem seu próprio método de escolha do MAC.

Por que mudar o MAC?

Existem motivos maliciosos para isso (um monte deles), mas também existem motivos legítimos. No meu caso, precisei estudar o assunto quando instalei internet via rádio na minha casa e descobri que o acesso estava amarrado ao MAC da placa de rede fornecida pelo provedor. Isso é feito para dificultar o acesso não autorizado à rede sem fio, mas eu não gosto da idéia de ficar dependendo de uma peça de hardware que eu não posso trocar para fazer diagnóstico.

Nota: No mundo Windows, apenas depois do Windows 2000 isso passou a ser possível (e fácil) porque o sistema operacional veio com suporte a isso. Todo mundo que aprendeu como funcionam as redes Windows antes de 2000 e não se atualizou continua achando que mudar o MAC sem um “hack” eletrônico seja impossível, porque era mesmo.

Nota: Eu testei o método também no Windows Vista Starter Edition e aparentemente funcionou. Os locais no Registro são encontrados da mesma maneira e o MAC aparece alterado. Mas como eu só uso o Vista em testes, meu tutorial só aborda o XP. Em tese, o método também funciona no Windows 2000 e 2003, mas não tenho tempo para comprovar isso agora.

A mudança não é permanente. Você apenas informa ao XP para usar outro MAC ao construir os pacotes de dados. Se você formatar o HDD ou retirar a placa e colocar em outra máquina, o MAC original volta a valer.

Toda placa de rede tem um MAC único. Em teoria não deveriam existir duas placas no mundo com o mesmo MAC. Isso é garantido em parte porque os três primeiros bytes do MAC são únicos para cada fabricante. E como tentar usar duas placas com o mesmo MAC numa mesma rede pode criar uns problemas enlouquecedores, um fabricante não tem nenhum interesse em deixar que isso aconteça com os seus produtos. O MAC é gravado em uma memória EEPROM em todas as placas de rede, desde as pré-“plug and play” até hoje.

As fotos abaixo destacam a memória EEPROM em dois modelos de placas WIFI:

Com o conhecimento e o equipamento é possível mudar o endereço MAC gravado na EEPROM, mas em um PC rodando o Windows XP você não precisa ter esse trabalho todo.

Nesta página eu abordo três métodos:

Como obter o MAC em uso

O modo mais óbvio é procurando pela etiqueta na própria placa, mas se a a placa não tiver etiqueta ou já estiver instalada, sempre tem um jeito.

Estando no PC

Na impossibilidade de usar esse caminho, abra um prompt de comando e digite ipconfig /all [enter]

Uma lista de todos os adaptadores de rede ativos com os respectivos endereços MAC será exibida.


Estando em outro PC na mesma sub-rede

Você só precisa saber o IP da máquina em questão. Abra um prompt de comando e dê os seguintes comandos:

ping endereçoIP

arp -a endereçoIP

Só funciona se o endereço responder ao PING

Por exemplo, como o endereço IP do exemplo acima é 192.168.0.121, basta fazer isso em outra máquina:

Nota: “arp -a” não vai buscar o endereço MAC na rede. O endereço foi obtido quando demos o PING e está no cache, por isso se você executar esses comandos em uma máquina “A” para obter o MAC da máquina “B” e em seguida mudar o MAC da máquina “B”, se testar com “arp -a” de novo, o MAC antigo será retornado. É preciso usar PING novamente para atualizar o endereço.

O método manual

Para mudar o MAC no XP você precisa identificar exatamente o adaptador de rede cujo MAC você quer mudar. Isso é simples em um computador “simples” com uma única conexão de rede, mas se você já tiver instalado ou mesmo testado adaptadores Bluetooth, Vmware, outras placas de rede, etc, o registro vai estar apinhado de referências a adaptadores de rede. Você precisa ser capaz de encontrar o correto.

O modo mais “direto” é se você souber exatamente qual o “nome da conexão”.

Nota: o nome dado a uma conexão é único. Você também pode procurar pelo nome do driver, mas esse método pode levar a “falsos positivos”, porque se por exemplo você tem (ou mesmo teve) duas placas de rede iguais no PC vão existir duas referências ao mesmo driver no registro e você pode escolher a errada. O mesmo pode ocorrer se você tirar a placa de rede de um slot PCI e colocar em outro. Se sua placa de rede tiver “passeado” por todos os slots de sua placa mãe, vai existir uma referência no registro para cada slot, sem meios simples de descobrir qual a referência ativa.

Na imagem ao lado, meu adaptador de rede está configurado para exibir o status quando conectado (o default do XP é exibir apenas em caso de problemas) e basta mover o mouse sobre o ícone para ver o nome da conexão. No meu caso é “Rede 100 Mbps” porque eu dei esse nome, mas na maior parte dos casos vai ser “Conexão Local”

Alternativamente, abrindo “Conexões de Rede” no Painel de Controle você vai ver uma lista parcial das conexões. No meu caso, como eu dei a cada uma um nome descritivo, é fácil identificar a correta.

Alguns drivers já tem suporte à mudança

A imagem abaixo mostra dois caminhos possíveis para chegar ao local onde é possível configurar o MAC

No exemplo acima a opção não existe. Quando a opção existe se parece mais ou menos com isso:

No caso acima, basta inserir o novo valor em “value” e depois desativar e reativar a placa de rede (ou reiniciar o computador). Não use nenhum tipo de separador. Por exemplo, se o MAC desejado for 00-16-E9-74-1D-27 você deve digitar 0016E9741D27;

Quando o modo mais fácil não funciona

Sabendo qual o nome da sua Conexão de Rede, basta usar Regedit.exe para olhar na chave:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}

  1. O caminho da chave raiz é sempre este. Você vai olhar as sub-chaves uma por uma em “connection”…
  2. …até encontrar o nome da sua conexão de rede.
  3. Anote então este número (um printscreen serve).

O próximo passo é em outro lugar bem próximo (a única diferença está em negrito) no Registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}

  1. Olhe em todas as sub-chaves até encontrar…
  2. …a que tenha o valor NetCfgInstanceId igual ao que você anotou
  3. NetworkAddress tem o valor do MAC configurado pelo usuário. Se estiver limpo, o adaptador está usando seu endereço de fábrica. Se o item NetworkAddress não existir, crie um.
  • Para não ter que procurar novamente, clique com o botão direito sobre a chave mais próxima (no caso acima, é a pasta de nome “0001”) e peça “copiar nome da chave”. Salve em algum lugar.
  • Clique duas vezes para mudar o valor. Não use nenhum tipo de separador. Por exemplo, se o MAC desejado for 00-16-E9-74-1D-27 você deve digitar 0016E9741D27;
  • Desative o adaptador de rede (“reparar” não basta);
  • Ative o adaptador;
  • Teste. Você já deverá aparecer com um novo MAC. Note a “ironia” do XP continuar chamando de “endereço físico” um endereço que de físico não tem mais nada 🙂

Automatizando

Clique com o botão direito sobre chave mais próxima (no caso acima, é a pasta de nome “0001”) e peça “Exportar”. Isso vai criar um arquivo .reg com todo o conteúdo da chave e que pode ser editado com o Notepad. O conteúdo do arquivo começa mais ou menos assim:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001]
"AdapterCFID"="811929862"
"AdapterType"="5"
"MediaType"="1"
"ReceiveBurstIndicate"="32"
"ReceiveThreshold"="0"
"TransmitThreshold"="0"
"BurstLength"="1"
"MapRegisters"="32"
"EarlyReceive"="0"
"EarlyTransmit"="0"
"TransmitBuffers"="32"
"ReceiveBuffers"="64"
"NetworkAddress"="0016E9741D27"
"Characteristics"=dword:00000084
"BusType"="5"
"ComponentId"="pci\\ven_1106&dev_3065"
"ConnectionType"="0"
"ValidatePacketLen"="1"
"InfPath"="netvt86.inf"
"InfSection"="VT3065.ndi.nt"
"ProviderName"="Microsoft"

Você pode até remover tudo do arquivo e deixar apenas estas linhas:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\0001]
"NetworkAddress"="0016E9741D27"

Edite o arquivo com o MAC que você desejar e salve. Você pode salvar com outros nomes para ter um arquivo para cada MAC que deseja usar.

Tendo feito isso, o procedimento automatizado se resume a:

  • Clicar duas vezes sobre o arquivo .reg desejado para instalar;
  • Desativar e ativar o adaptador;

É importante ter em mente que esses arquivos .reg só servem no PC onde foram criados.

O método inteiramente automático

Eu não vou entrar em maiores detalhes, mas existem dois softwares que podem fazer isso por você:

  • MACshift – Open Source – Só pode ser usado por linha de comando. Só funciona no Windows XP.
  • SMAC – Tem uma GUI, mas não é sequer gratuito. Só aceita linha de comando na “Command Line Edition” (US$50), mas segundo a propaganda funciona no 2000, XP, 2003 e Vista;

Ambos permitem a troca do MAC sem precisar reiniciar o Windows.

Francamente, pelo menos no Windows XP a mudança do MAC é tão trivial que acho um absurdo o que cobram pelo SMAC, por isso nem sequer baixei para testar ainda. Meu preferido é, óbviamente, o MACshift.

Esta página usa a biblioteca javascript freeware overlib

Comentários podem ser feitos neste post do blog ou aqui mesmo.

Esta página foi visualizada vezes desde desde 25/11/2007

31 comments to Como mudar o MAC Address de Placas de Rede

  • cara vc é 10 parabéns me facilitou muita coisa de estudo ! o q eu nao entende na escola peguei facin aki…..
    vlw

  • O MacShift teoricamente reseta o adaptador pra ja usar o novo MAC, mas na pratica não o faz, deve ir na conexão e Reparar (no caso de Wireless funciona, pois o windows vai desconectar e reconectar à rede) ai sim com o novo MAC.
    tentei criar um script pra fazer isso automaticamente com ipconfig /release e /renew mais tambem não deu certo, pois ele não desconecta a rede :/

  • Jefferson não aparece erro, da como executado com sucesso.
    “>macshift.exe -i “Conexão de rede sem fio” 001F1F200E2D
    Macshift v1.1, MAC Changing Utility by Nathan True, macshift@natetrue.com

    Setting MAC on adapter ‘ConexÒo de rede sem fio’ to 001F1F200E2D…
    Adapter ID is {060A672F-6C94-44A3-9DDA-34B85C59F8B0}
    Resetting adapter…
    Done”

    Ai eu vou no status da conecção esta o MAC antigo, dai mando Reparar para desconectar e reconectar, daí sim pega o novo MAC.
    Tem alguma sugestão? estou buscando algum utilitário de linha de comando simples so pra trocar o MAC e resetar o adaptador, o mais proximo que achei ate agora foi este mesmo.

  • Pimba!
    Renomeei a rede para apenas “wifi” agora sim esta reiniciando.
    Muito obrigado pela dica. Fica registrado então, realmente ele não se dá bem com nomes grandes e/ou com acentos.

  • Pazin

    OLha só pessoal, usei no windows 7 o tutorial do amigo e tb funcionou perfeito seguindo os passos rigorosamente….
    Abraços

  • karlus Dering

    Valeu Veio, vc é o kara onde aprendeu isso ai???

  • Elielson

    Tem algum jeito de trocar a mac address wireless no windows 7?
    ja tentei com amac, macaddress changer e smac naum consegui..
    com o amac e o macaddress changer eles falam q trocam + dai eles continuam com o msm MAC address.. alguem tem alguma solução para isso pessaol?

  • Parabéns Cara! Eu já estava a traz disso há uns dois dias, e até que enfim encontrei.
    Valeu!
    O Tuto tá perfeito!

  • PVig

    Cara, a matéria é excelente, mas não funcionou comigo, e acredito que seja pelo fato de eu estar conectado através do Virtua (cabo da NET). Minha rede é da classe C (Modem NET-Roteador-Máquinas) e o modem Vírtua (ao que parece) conecta o MAC da placa ao modem, não permitindo que eu utilize o modem em outro computador. Só que minha rede está roteada, neste caso acho que o roteador copia o MAC da placa na qual o modem foi instalado e trabalha com ele. O fato é que quando faço a troca de MAC no PC com wireless USB, este não conecta a rede (nem a Internet). Como acha que devo proceder? Vlw!!

  • Marcus Wagner

    Parabéns, amigo, pelo conhecimento e por compartilhá-lo conosco. Valeu mesmo.

  • Rodney

    Ei amigo Quando vc diz : ” escolha o MAC que desejar ” pode ser qualquer um de doze digitos que eu inventar? ate aaaa… ?
    Acho que é meio tola essa pergunta mas preciso dessas informações triviais 😛
    Agradeço muitissimo o seu belo post !

    • No momento, não consigo lembrar de nenhuma restrição. Não consigo lembrar de nenhum endereço reservado e certamente os endereços não são calculados. Então, teoricamente, qualquer endereço funciona.

      Porém parece que no Windows Seven (e apenas nele) os endereços precisam seguir uma regra. Eu não tenho essa regra na cabeça agora.

      • A unica restrição é que deve-se usar apenas caracteres hexa (1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F)

        Amigão, realmente não funciona no Windows Seven, apesar de ter encontrado todas as chaves de registro e ter feito as modificações de acordo.

        Quando souber um modo de funfar no Seven, posta ai pra galera!

        VLw pelo post!

        • Alverne Paiva

          Jefferson tem razão, existem restrições sim e não apenas usar caracteres hexadecimais. Vou tentar encontrar e repasso, já passei por isso e foi assim que foi resolvido no Windows 7.

  • ATAILTON

    OLHE CARA O PRIMEIRO MODO EU JA TINHA DESCOBERTO HOJE MESMO E TESTADO. DETALHE.
    DEU CERTO.
    OS OUTROS DOIS EU NÃO CONHECIA, MAS FOI BOM.]] É VIVENDO E APRENDENDO.
    VAELU MESMO

  • RODOLFO

    Sensacional, não sou de deixar comentários mas esse seu tutorial foi fantástico.

    Muito obrigado e parabéns.

  • Hugo de Oliveira Rezende

    Cara,

    Tu mandou muito, mais muito bem, entrei em varias tutoriais, mas o teu não foi bom, foi excelente.
    Estava com problemas no DHCP nem mesmo os comanso ipconfig /realese ou renew funcionavam.
    Mudei o número do MAC, tudo funcionou normalmente sem eu precisar reinstalar o windows ou utilizar outro programa qualquer.
    Parabéns.
    E Desde já muito obrigado.

  • Léo

    Valeu ficou muito bom!
    Tava procurando fais um tempo ja esse do modo dificiu e num achava
    mais valeu ja funciono!

  • Excelente tutorial. É muito bom poder contar com caras com conhecimento dispostos a compartilhá-lo.

  • luiz

    Quando eu for trocar o mac da rede, eu posso por qualquer um?
     
    Ex: 00-AG-00-YH….

  • Qualquer um válido. Leia o comentário de Vinicius Almeida.

  • Guilherme

    Cara queria te agradecer pelo tutorial, ajudou muito aqui numa situação parecida com a sua. No meu caso, a VPN não conectava e desconfiei que fosse por causa do roteador, mas conectando a saída da internet direto no notebook não completava a conexão. Então usei seu tutorial para clonar o MAC do Router no computador, e foi de primeira! Valeu mesmo!

  • albertoprado

    Só complementando. Quem tiver com a UAC do Windows 7 no nível máximo de segurança não conseguirá usar o Macshift.
    Ele não retorna nenhum erro, mas mostra como se tivesse feito a tarefa normalmente.
    Entretanto, ele modifica o registro do Windows, o mesmo não permite que ele faça essa modificação com a UAC (Controle de Conta de Usuário) em nível máximo de segurança.
    No meu caso, como eu chamo esse programa através de um .bat, pra automatizar a tarefa de fazer meu cable modem Motorola SBV 5122 trocar o IP automaticamente. Eu coloquei o programa na pasta System32 e modifiquei as Propriedades para que ele seja executado em modo Administrador.

  • Lucas Toledo

    Galera , alguém já sabe se funciona ou já conseguiu fazer funcionar no Windows 7 ???

  • Rodolfo Marques

    Jeferson cara MUITO obrigado, pois voce evitou que eu instalasse um programa que fizesse este procedimento que voce descreveu, parabéns cara. Geralmente eu entro nos foruns e nao agradeço, mas neste aqui sim.

  • leandr

    pra voces consegui muda o mac no windows 7 é simples
    remova o drive da placa e instale o drive do windows xp ou do vistae preste atenção se seu windows for 64 bits instale do windows xp 64 ou vista 64 abraços

  • Thiago Cuco

    Fiz o teste pelo Regedit e funcionou perfeitamente. Tanto pelo WinXP quanto para o Win7.
    mtoo bomm !!

Leave a Reply to RODOLFO Cancel reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>