修改网卡mac地址的方法
※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn
【 以下文字转载自 Winsock 讨论区 】
【 原文由 Ilyx 所发表 】
【 在 mwgjh (萧秋雨) 的大作中提到: 】
: 那就在BBS上给我写信,这下方便了吧,呵呵!
算啦算啦,其实没什么的,本来就是公开的秘密,大家都知道的,
我就不卖关子啦。
更改网卡硬件地址的五个方法
如果你的合法网卡不幸坏掉啦,你只好买个新的,你又懒得去
重新登记,那么本文或许对你有用。
声明: 不得利用本文从事非法活动!
(1) 先看看网卡的SETUP程序,就是可以改中断号、IO地址的那种
程序,如果走运的话,那里面或许本来就有NodeAddr之类的
选项。我见过的很多网卡都是可以直接改地址的,我用的这
片就是。(EDIMAX EN-2000PXT[ISA 60RMB 红色包装 村里到处都有]设置MAC地址setup /i [说明上没有/i选项]
)
片就是。
(2) 如果(1)不灵,试着给SETUP加某种参数,/A, /B, /C 一个一个
的蒙,运气好的话,或许你能碰巧把SETUP中隐藏的功能蒙出
来。有些卡的SETUP已经试出来啦,似乎有人在BBS中POST过的。
(3) 如果你坚信你的SETUP有此功能,只是被DISABLE掉啦(理由是
生产厂家必然要用某种程序设置初值,这个程序极有可能就是
你软盘上的这个SETUP),且(2)又试不出来,还有个笨办法:
用SOFT-ICE把它解啦,我们这儿有人这么干过。
(4) 以上都是软的方法,如果软的不行就只好来硬的啦。如果你的
网卡不是十分古老,它上面一定有一片EEPROM,我赌它是
93C46,八条腿,如果我说对啦,那就请你把它拆下来(最好焊个
DIP8的插座),放在编程器上改一改就行啦,其中有6个字节是
你感兴趣的。如果不是93C46也不要紧,只要你的编程器支持
该芯片就行。此法我身体力行过。对那种老古董网卡,可能用
的是某种古老的EPROM(我见过一个用74LS288的),这就比较
讨厌,但只要开动脑筋也会有办法,还是那句话,“没有不
可能的事”。
(5) 如果软硬兼施仍不见效,那你的运气真是糟透啦。不过我还有
最后一招,包你百试百灵:坐355路公共汽车到中关村随便哪个
电子市场,买一片支持法(1)的网卡,这种网卡遍地都是,
< 100RMB。前几天我们刚买了三片。
(6) 改驱动程序也是一招(高手用过,我不会)
(7) hehe, 不用这么麻烦, 要是你用Linux的话, 用ifconfig就可以指定你自己的MAC
地址了, 随便什么, 不用改注册表啥的. 用IP-MAC捆绑防盗用只是"防君子不防XX",
:-)))
因为网卡物理地址在使用时是从寄存器里读出来的
如果你用的是工作站,本文可能不适合你,但请相信我,“没有
不可能的事”。
: 还有一个更简单的方法,大多数网卡的95或nt驱动程序支持
: 使用注册表中指定的mac地址
: 装完一个系统后,我喜欢把mac地址改成一个比较好记的数字,
: 例如我的学号
These days,I am studying Nt4DDK,and have found a function
(NdisReadNetworkAddress()).The function is used to
read a mac address from register,
so I suppose that most drivers
can use this function.After trying some drivers,
I think that I am correct.
Now I tell you how to change your mac address.
(The mac address is not the address
burned in your netcard,but the address
that your netcard driver uses to communicate with others.)
For Winnt user:
you should know which services is your netcard drivers service.
(I use 3c509,and
elnk3 and elnk31 are the currect service,
and the following is based on 3c509 driver).
Open register hkey_local_machinesystemcurrentcontrolsetservices,
find the service elnk31,open register elnk31parameters.
Add a string value,name "NetworkAddress",
the value is the mac address that you want to use.
for examples,If you want to use "00-11-22-33-44-55",
the value is set "001122334455" or "00-11-22-33-44-55".
Next,for win95 users.
HKEY_LOCAL_MACHINEsystemcurrentcontrolsetservicesclasses et.
Under this key,there is usually 1 subkey,
named "000" or other.You can find the subkey
that your netcard is using,(for example "000",)
add a string value name "NetworkAddress",
value as "001122334455" (12 chars).
important notice:
1:the method can always work correctly
2:the mac address selection should be careful.
for example,the first char should not be zero.
3:you should not use others legal ip address to go out of china.
Remeber,don steal others money.
reek(town)转载的一文---"Re: 有谁知道如何改网卡的MAC地址吗?(空)"
的启发及freetalk (glasseye)的提示下, 经过自己的多次尝试得出的操作方法。
在此贴出以供同仁参考。
网卡真正的MAC地址是在EPROM中的,可以通过专门的程序修改,不少网卡的厂商都能提
供。比如PCI-RTL8029,便可到realtek公司的主页上下载一个修改EPROM的小程序。
在Win9x和winnt 3.5、4.0下,网卡驱动程序使用NDIS规范与操作系统通信。MAC地址被
存储在操作系统的某存储单元内,这时可以通过修改该内容达到目的而不用修改你的
EPROM内容。
1、首先打开注册表,找到HKEY_LOCAL_MACHINEsystemCurrentcontrolsetservices
classes et000、0001、0002等下,观察DriverDesc内容为你要修改的网卡的描述。
2、在其下,添一个字符串,名字为NetworkAddress,值设为你要的MAC地址,要连续写。
如004040404040。
3、然后到其下 NDIparams中加一项NetworkAddress的主键,在该主键下添加名为
default的字符串,其值写你要设的mac地址,要连续的写,如004040404040。
4、在NetworkAddress的主键下继续添加名为ParamDesc的字符串,其作用为指定Network-
Address主键的描述,其值可为“MAC Address”,这样以后打开网络邻居的属性,双击
相应网卡项会发现有一个高级设置,其下存在MAC Address 的选项,就是你在注册表中
加的新项NetworkAddress,以后只要在此修改MAC地址就可以了。
5、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会
发现有一个MAC Address的高级设置项。用于直接修改MAC地址。
一些网卡如d-link的de220在安装时,会自动在注册表中加入这些项目,你只需修改值
就可以了。
1、2步骤用于修改当前(下一次启动)时MAC 地址。
3、4步骤用于在网络属性的网卡属性中添加相应高级属性。
其实在win9x下都好改,
regedit,
HK_LM->SYSTEM->CURRENTCONTROLSET->
SERVICES->CLASS->NET
在下面找到你的网卡配置,一般是
ne2000 compatible ethernet card,
然后在000x(x是你网卡在网络设备里的序号)
主键下,新建一个串值NetAddress,
将值设为你需要同ip对应的mac地址,
十六进制十二位,中间不加任何连字符,
如0000e893a14b,大功告成。
接着运行一下winipcfg,看看,
Novell 2000 Adapter的适配器地址
是不是成了你希望的地址?
呵呵,我还想多说一句,
在NT下怎么改呢,
有人告诉我什么驱动程序的设置里可以改,
但是我找不到,
上次发了文求解,也没人理会,
以下是我用在英文win2000下的方法
1)Start->Settings->Network and Dial-up connections
打开Local Area Connection 中的Property
copy 网卡的设备描述(DriverDesc),
就是网卡图标边的文字 如:PCI Ethernet Adapter,
2)在Regedit下打开
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass下
查找刚才copy下的文字,一般在000x(如,0005)下,
为DriverDesc的Value。
3)在000x下,添一个字符串,名字为NetworkAddress,
值设为你要的MAC地址,要连续写。如 090038015E1C
4)在000xNdiparamsNetworkAddress的主键下继续添加名为
ParamDesc的字符串,作用为指定Network-Address主键的描述,
值可以随便取,如“MAC Address”,这样网卡项的属性会多出
个 项NetworkAddress,以后只要在此修改MAC地址就ok.
发信人: nonsun (无晴), 信区: Networking
标 题: 如何在Win2k下修改MAC地址
发信站: BBS 水木清华站 (Fri Nov 17 14:50:08 2000)
如何在Windows 2000下修改MAC地址
动机:
为了……,反正既不害人也不害己。
缘由:
搜寻了水母的Security版现存的文章和精华区,没找到说如何在NT/2000
下修改网卡MAC地址的,仅有一篇提到了在Networking版的精华区中有,再到
Networking版精华区《专题讨论系列》->《专题讨论:更改网卡MAC地址的五
种方法》下,找到关于在NT下修改的文章,如法炮制后未果,决定放弃搜索文
章,“自己动手,丰衣足食”……尽管如此,精华区的如下几篇文章还是给了
我极大的启发:《Re: 更改网卡硬件地址的五个方法 (转载)》(第4篇,by
wzheng)、《修改MAC地址的范例》(第9篇,by rifter)。
修改方法:
1、在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass
{4D36E972-E325-11CE-BFC1-08002BE10318}000、0001、0002等主键下,查
找DriverDesc内容为你要修改的网卡的描述的,如0000。下面的方法和rifter
《修改MAC地址的范例》中提到的一样,我就照搬了(注解的地方以“^^”标
明)。
“---->
2、在其下,添一个字符串,名字为NetworkAddress,值设为你要的MAC地
^^^^^【指在0000主键下】
址,要连续写。如004040404040。
3、然后到其下NDIparams中加一项NetworkAddress的主键,在该主键下
^^^^^【也是指在0000主键下】
添加名为default的字符串,值写要设的MAC地址,要连续写,如004040404040。
^^^^^^^^^^^^^^^^^^^^^^^
【实际上这只是设置在后面提到的高级属性中的**初始值**,实际使用的MAC
地址还是取决于在第2点中提到的NetworkAddress参数,而且一旦设置后,以
后高级属性中值就是NetworkAddress给出的值而非default给出的了。】
4、在NetworkAddress的主键下继续添加名为ParamDesc的字符串,其作用
为指定NetworkAddress主键的描述,其值可为“MAC Address”,这样以后打
开网络邻居的属性,双击相应网卡项会发现有一个高级设置,其下存在
MAC Address 的选项,就是你在注册表中加的新项NetworkAddress,以后只要
在此修改MAC地址就可以了。
5、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,
双击相应网卡项会发现有一个MAC Address的高级设置项。用于直接修改MAC地
址。
<----”
回顾:
我首先是照rifter的方法,但在HKEY_LOCAL_MACHINEsystem
Currentcontrolsetservices下没有找到Classes以及其下的系列主键。
后又按照wzheng所说的方法,搜索与网卡对应的service,如我的rtl8029,
在其下(即在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices
rtl8029Parameters下添加NetworkAddress字串值并设置,重启后没有效果,
又尝试直接在rtl8029下添加并设置并重启后仍无效果。:-((
失望之余,试图“暴力”一把,在查看了rtl8029下的所有键和值之后,
决定以rtl8029Enum下字符串“0”的取值的一部分“DEV_8029”作为特征值
进行查找,在找到的一堆主键和值中分析后,决定在前述位置(即
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass
{4D36E972-E325-11CE-BFC1-08002BE10318}000下)添加。首先添加的是上
面3、4点所说的东东,再一看网卡的高级属性“MAC Address”已经出来了,
但ipconfig报告的地址仍然没有变,再一次faint!
本想重启后再试一试,但我偷懒的在刚出来的“MAC Address”中设置了
一把,再ipconfig……什么都没有(网卡不在了),再ipconfig……居然已经
是改过之后的MAC地址了,Yeah!成功了!
接下来就简单了,查找一下“NetworkAddress”,就得到了第一点的结论。
这时候再回过头来看,差别不大嘛:
HKEY_LOCAL_MACHINEsystemCurrentcontrolsetservicesclasses et000
^^^^^^^^^ ^^^
HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlClass{...}000
^^^^^^^^ ^^^^^
只不过是把Service改成了Control,Net用一个CLSID来表示了,而{...}这一
长串咒语其实就是Net的Class ID,看看其下的相关描述信息就知道了。看来
事物的发展真是“螺旋式的上升”,转了一圈又以另一个面孔回来了。另外补
充说一句,Currentcontrolsetservices下没有classes主键,只有“Class”,
无论是NT还是98,想必是笔误,这样两者就完全对应起来了。
其实要找到这串“咒语”也不难,或者用特征字符串去查找,如网卡的描
述信息或“Net”(不过后者找起来要费事儿得多),或者直接看“Class”下
有一堆并列的“{4D...18}”,看第一个连字符前为72的就是,即
{4D...72-......18}。
环境:
Windows 2000 Professional+SP1 on FAT32
Realtek RTL8029(AS) PCI Ethernet Adapter
发布人:netbull 来自:LinuxAid