修改网卡mac地址的方法
上一篇 /
下一篇 2007-01-18 00:00:00
/ 个人分类:Work
--转自linuxaid.com--
接上
发信人: 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'
转载自 http://www.itpub.net/959.html
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: