http://www.douzhe.com/linuxtips/828.html
改mac地址
2004-04-23 15:18 pm
作者:作者
来自:Linux知识宝库
现载:http://www.douzhe.com/docs/linuxtips/
地址:无名
大都是干坏事的吧
一来有些公司做的软件是认mac地址的,有的是从网卡上的eeprom中读取,有的仅仅是从注册表读取
(比如Cadence公司某些电路设计软件), 对于后者,破起来太简单了而对前者呢,只能跑到大街
上买块驱动加参数就可以改写eeprom中mac地址的网卡了,听我一个同学讲realtek也提供了程序改
写eeprom。good!
二来改mac地址可以攻击别人而不被发现
三来可以偷懒,当网管把你的ip地址和mac地址绑定的时候,换了网卡也不需要和网管打招呼,不
过这样一来有国际路由的机器就要一天到晚开着机器了,piapia呀,特别是收到seic帐单的时候
还有为了方便,比如我,把mac地址改成AA-BB-CC-DD-EE-FF,整齐好看
下面的方法其实是平时在水木hacker版晃悠的时候收集的,win9x、winnt、win2k下都试过,
没问题。
Win98下改网卡地址的方法:
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。
3、然后到其下 NDIparams中加一项NetworkAddress的主键,在该主键下添加名为
4、在NetworkAddress的主键下继续添加名为ParamDesc的字符串,其作用为指定Network-
Address主键的描述,其值可为“MAC Address”,这样以后打开网络邻居的属性,双击相应网卡项
会发现有一个高级设置,其下存在MAC Address 的选项,就是你在注册表中加的新项
NetworkAddress,以后只要在此修改MAC地址就可以了。
5、关闭注册表,重新启动,你的网卡地址已改。打开网络邻居的属性,双击相应网卡项会发现有
一个MAC Address的高级设置项。用于直接修改MAC地址。
一些网卡如d-link的de220在安装时,会自动在注册表中加入这些项目,你只需修改值就可以了。
1、2步骤用于修改当前(下一次启动)时MAC 地址。
3、4步骤用于在网络属性的网卡属性中添加相应高级属性。
************************************************************************
*******************
WinNT下改网卡地址的方法:
打开注册表,
HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services
假设我的网卡是ne2000,找到NE2000与NE20001的键值(不知道怎么回事,我这里关于NE
2000的键有两个,为保险,都做如下修改),在Parameters项里添加字串值:
名称:NetworkAddress
数据:“004040404040” (这里就是你要改的mac值,可自己随便填12位)
然后重新启动计算机,ipconfig看一下,就知道改好了没。
************************************************************************
**************************
Win2k下改网卡地址的方法:
一般来说,如果不是选择NE2000 COMPATIBLE安装的驱动,在网卡的属性里面会有一个高级页,
其中会有NETWORK ADDRESS的选项,这样你就可以设置啦。这个方法在WIN98中也适用。
我的WIN2K网卡就是这样装好的,而且有意思的是,我的网卡没有2K的驱动,只有尝试选择其他的
NE2000兼容网卡安装驱动,在2K的硬件安装向导里,如果配置成功,最后一定不会出现驱动不匹配
的信息,不用重启来检验了,真的不错。另外,如果你想改注册表的话,就这样,
在HKEY_LOCAL_MACHINESYSTEMCurrentControlSet
ControlClass{4D36E972-E325-11CE-BFC1-08002BE10318}下,
(这个项对应的是网卡配置)
找到你的ETHERNET网卡项000x,然后添加或修改一个名为Network Address的字符串值,填入你需
要修改的MAC地址就可以了
Linux 的
首先必须关闭网卡设备,否则会报告系统忙,无法更改。
命令是:
/sbin/ifconfig eth0 down
修改 MAC 地址,这一步较 Windows 中的修改要简单。
命令是:
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
重新启用网卡
/sbin/ifconfig eht0 up
网卡的 MAC 地址更改就完成了
我直接用ifconfig xl0 ether 00:b0:d0:33:33:33 就可以改掉, 不用先DOWN 再UP
改 MAC Addr
vi /etc/rc.d/rc.local
/etc/rc.d/init.d/network stop
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
/sbin/ifconfig eth1 hw ether 00:AA:BB:CC:DD:FF
/etc/rc.d/init.d/network start
/sbin/ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
/sbin/ifconfig eth1 hw ether 00:AA:BB:CC:DD:FF
/etc/rc.d/init.d/network start
INTEL 網卡
http://www.routerclub.com/viewthread.php?tid=10552
INTEL网卡卡号修改及编程
网卡的卡号,即MAC地址.其是唯一的.在网络中,特别是局域网中,不可能存在两个完全相同的卡号;一般来说,网卡的卡号是不需要修改的.但是如果遇到电信的ADSL,将网卡卡号绑定,如果随ADSL的网卡损坏或丢失,那么随意更换一个网卡是无法使用的.只有更改网卡的卡号与随ADSL对应的卡号才行.
在以前的文章中介绍了8139系列网卡的MAC卡号的修改方法,但对于INTEL网卡如何修改呢.下面,BIOS维修网站将以INTEL82559网卡为例做一介绍.
首先下载INTEL网卡的刷写工具.可从BIOS维修网站下载:eeupdate点击下载
下载完成后,解压缩并将“eeupdate”程序复制到软盘上,用启动盘重启计算机。在“纯DOS”中输入eeupdate -all dump命令(把所有82559网卡的EEPROM的信息保存为扩展名eep的文件)。
用文本编辑器打开保存的eep文件(我的是27A7C097.eep),显示如下
9000 A727 99B0 0203 0000 0201 4701 0000
7414 6202 4082 000B 8086 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 07B5
其中,前面的三组数9000 A727 99B0表示该网卡的MAC地址;第四组数0203表示网卡特性(0203为桌面版);第五组为保留字段;第六组0203为网卡芯片信息(0203表示芯片为GD52559,网络接口为RJ-45);第七组4701为物理芯片信息;第八组数4701为保留字段;第九至十组4714 6202为产品编号;第十一组数4082为网卡设置信息;000B为网卡产品名称(000B为Intel PRO/100+ PCI Adapter);最后的8086表示网卡的驱动平台(8086为X86)。
根据上面的信息用文本编辑软件更改如下:
第四组0203改为0403(0403表示服务器网卡);九至十组7414 6202改为7351 9001(7305 9001为服务器的网卡编号);000B改为100C(100C表示 Intel PRO/100+ Server Adapter),最后保存。
更改后的eep文件如下:
9000 A727 99B0 0403 0000 0201 4701 0000
7351 9001 4082 100C 8086 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 07B5
最后在MSDOS环境下,输入eeupdate -all -d xxx.eep (xxx.eep就是刚才编辑的文件)。
更改后性能应该没变,只是能够使用PROSET的服务器网卡专用功能(比如网卡绑定等)。最后说明一下:OEM的Intel网卡由于EEPROM信息特殊,可能无法改写成功。
另外,对于笔者还测试过对INTEL 82540网卡的修改,在经过测试后,可如此更新.82540刷写程序请从BIOS维修网站下载.82540刷写程序点击下载
首先下载82540的刷写压缩包,解压缩后,在WIN环境下使用编辑软件.如ULTRAEDIT32或TXT文本文件编辑器或EDIT文件.打开编辑 EELOG.DAT文件,然后在EELOG.DAT中填写需要修改的卡号即可.详细可参考压缩包中的EELOG.DAT文件.
修改完成后,重新启动系统到DOS环境下.执行540.BAT文件即可.
以上修改方法请网友测试使用.
注意:修改网卡的MAC地址.由于其中包括网卡的信息.如果修改错误,可能造成网卡无法识别,请网友慎重修改.
INTEL网卡卡号修改及编程
网卡的卡号,即MAC地址.其是唯一的.在网络中,特别是局域网中,不可能存在两个完全相同的卡号;一般来说,网卡的卡号是不需要修改的.但是如果遇到电信的ADSL,将网卡卡号绑定,如果随ADSL的网卡损坏或丢失,那么随意更换一个网卡是无法使用的.只有更改网卡的卡号与随ADSL对应的卡号才行.
在以前的文章中介绍了8139系列网卡的MAC卡号的修改方法,但对于INTEL网卡如何修改呢.下面,BIOS维修网站将以INTEL82559网卡为例做一介绍.
首先下载INTEL网卡的刷写工具.可从BIOS维修网站下载:eeupdate点击下载
下载完成后,解压缩并将“eeupdate”程序复制到软盘上,用启动盘重启计算机。在“纯DOS”中输入eeupdate -all dump命令(把所有82559网卡的EEPROM的信息保存为扩展名eep的文件)。
用文本编辑器打开保存的eep文件(我的是27A7C097.eep),显示如下
9000 A727 99B0 0203 0000 0201 4701 0000
7414 6202 4082 000B 8086 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 07B5
其中,前面的三组数9000 A727 99B0表示该网卡的MAC地址;第四组数0203表示网卡特性(0203为桌面版);第五组为保留字段;第六组0203为网卡芯片信息(0203表示芯片为GD52559,网络接口为RJ-45);第七组4701为物理芯片信息;第八组数4701为保留字段;第九至十组4714 6202为产品编号;第十一组数4082为网卡设置信息;000B为网卡产品名称(000B为Intel PRO/100+ PCI Adapter);最后的8086表示网卡的驱动平台(8086为X86)。
根据上面的信息用文本编辑软件更改如下:
第四组0203改为0403(0403表示服务器网卡);九至十组7414 6202改为7351 9001(7305 9001为服务器的网卡编号);000B改为100C(100C表示 Intel PRO/100+ Server Adapter),最后保存。
更改后的eep文件如下:
9000 A727 99B0 0403 0000 0201 4701 0000
7351 9001 4082 100C 8086 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 0000
0000 0000 0000 0000 0000 0000 0000 07B5
最后在MSDOS环境下,输入eeupdate -all -d xxx.eep (xxx.eep就是刚才编辑的文件)。
更改后性能应该没变,只是能够使用PROSET的服务器网卡专用功能(比如网卡绑定等)。最后说明一下:OEM的Intel网卡由于EEPROM信息特殊,可能无法改写成功。
另外,对于笔者还测试过对INTEL 82540网卡的修改,在经过测试后,可如此更新.82540刷写程序请从BIOS维修网站下载.82540刷写程序点击下载
首先下载82540的刷写压缩包,解压缩后,在WIN环境下使用编辑软件.如ULTRAEDIT32或TXT文本文件编辑器或EDIT文件.打开编辑 EELOG.DAT文件,然后在EELOG.DAT中填写需要修改的卡号即可.详细可参考压缩包中的EELOG.DAT文件.
修改完成后,重新启动系统到DOS环境下.执行540.BAT文件即可.
以上修改方法请网友测试使用.
注意:修改网卡的MAC地址.由于其中包括网卡的信息.如果修改错误,可能造成网卡无法识别,请网友慎重修改.
RTL8139
http://www.routerclub.com/viewthread.php?tid=12189
永久性修改网卡(RTL8139)物理地址硬方法
永久性修改网卡(RTL8139)物理地址硬方法
——RTL8139 Ethernet Card EEPROM Flasher 介绍
作者 :Quby [kju:bi]
日期 :2005-8-29
关键词:BIOS ROM EEPROM FlashROM 网卡 修改 物理地址 ethernet change MAC MACchger
主板上有BIOS 的Flash Rom 可以通过BIOS系统的提供商,或者是主板的制造商那里得到刷主板的Flasher ,AMI-AMIFLASH 、AWARD-AWDFLASH还有ASUS的图形化的刷BIOS软件等等。你可以通过修改软件来修改ROM中的内容,比如增加一个自定义的开机画面,增加一个硬盘还原系统或者直接在ROM中增加一个升级ROM的小组件,这样升级BIOS就很容易了。
显卡上有显卡的BIOS的ROM,可能并不是所有的人的显卡的BIOS都可以改,因为只有显卡的BIOS是Flash ROM 或者是EEPROM的才可以修改更新。显卡的ROM改造和主板的改造目的是有所不同的。改显卡的ROM 主要是为了进一步超频,因为显卡的驱动一方面是通过显卡的Device ID 来识别显卡的核心,另一方面是通过显卡的性能参数,比如核心频率,显存频率。只有这两个方面同时符合另一类显卡的要求时才可以被系统识别成功。
这些信息都是从系统RSET 后显卡通过自身的ROM 进行加载信息来初始化显卡(寄存器)。这也使修改ROM的目标更明确,更吸引人(9550(¥400)->9600 pro(¥800)->9600XT(¥1200~……)),并且这些都是免费的。而这些只需要一个 Flasher!,具体的刷法就自行去参考网上资料我这里就不多说了,现在这种文章很多的。
其实,除了以上能刷固件的东西还很多(CD-Rom、 DVD-Rom、 MP3、数码相机……)但是真正是中国人自己写的升级软件,或者是修改软件并不多,大多数都是外国人高手也多出自俄罗斯或者是德国。所以我决定要自己写一个刷 ROM的软件,并且是别人没有写过的软件。
这些设备中还有一种设备——网卡,它本身也可以连接一个EEPROM(64*16),来储存网卡信息,包括网卡设置及物理地址,Device ID、Vendor ID等等。但你们可能要问为什么要改网卡的EEPROM,因为这样就可以自己定义网卡的物理地址,你还可以Clone网卡的物理地址(这以上都是为了正常的试验或者是合法的拷贝的基础上,在此只是学术上的讨论)。你可能说在windows下可以通过修改注册表或者是修改网卡属性中的配置信息中的高级选项设置Network Address项。对!这都没错,但是这些都是建立在Windows平台下,如果没有了Windows,你该如何办,或者说你换操作系统怎么办,再改一遍?如果你不嫌累,但如果你用的是Linux或者是DOS那又怎么办呢?? 用我编的这个小软件MACchger改EEPROM就能让它一次性并且是永久性的搞定。
网卡的物理地址在EEPROM中的位置根据网卡的芯片不同,布局也就不同、但他们都有共性就是他们都是储存在EEPROM上,当网卡加电时,通过网卡芯片的自动读取功能从EEPROM中读取出来,通过硬件机构设置到网卡的寄存器中,之后在通过系统的自检,操作系统的网卡的Driver加载把网卡的寄存器映射到物理内存空间或者是I/O空间。通过读写网卡芯片映射的寄存器,来操纵网卡来读或修改网卡EEPROM。
我利用暑假的10天时间写了一个软件,利用它可以永久性修改网卡的物理地址,或者更新备份网卡EEPROM的软件。此软件是针对 Realtek RTL8139 10 /100 M 自适应网卡,如果不太清楚,看一下设备管理器中的网络适配器中的信息。如果是 “Realtek RTL8139 Family PCI Fast Ethernet NIC”或者是有”RTL8139”字样的都可以。我的同学中不管是Intel 还是 AMD 的CPU ,不管是集成网卡还是独立网卡,百分之八十都是这种型号的。
你准备好了修改你网卡的物理地址了吗!
首先,你需要准备进DOS,因为软件是运行在DOS环境下的!(Windows 下不可,Windows 下有保护机制,它会禁止对硬件的一切直接访问,除非是驱动。等我考完研,我会修改这个程序让它能在Windows 下运行),不必是纯DOS,只要有一张windows 98 启动盘或者是DIY的 MS-DOS 7.1的启动盘(建议),引导进DOS。按以下具体方法操作即可。
1.查看帮助信息
当进入DOS后,运行MACchger.exe程序,就会看到如下的欢迎界面。如果程序提示不能运行,有什么 DMPI 的字段,你就先运行一下文件中的CWSDPMI.EXE的文件,再运行以上命令。
如果看不懂或看不清以上文字,我就用中文为大家解释一下,具体使用方法如下:
输入命令:MACchger 后加如下参数(只可加一个或者不加,参数全是大写)
-H : 打印帮助信息
-V : 显示网卡物理地址
-C : 修改网卡物理地址
-S : 保存网卡EEPROM镜像到当前目录下AT93C46.bin文件中,已将EEPROM中的大端顺序修改为小端顺序了。
-W : 刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中。
就如帮助信息说的你可以通过"MACchger -H"来看帮助,也可以什么参数都不加也可以达到相同目的。
2.修改物理地址
刚才说了半天关于EEPROM相关的东西,看起来挺复杂,但通过MACchger来修改网卡物理地址却一点都不麻烦。你只要记得原来网卡的物理地址和要改的物理地址,通过"MACchger -C"来运行MACchger。并按提示先输入原来网卡物理地址,再输入要改的物理地址,最后输入"OK"(注意:是大写的)来确认以下就可以了。最最后,你还要重新启动计算机,修改的物理地址只有当机器重起后才会生效。
3.查看物理地址
如果你想在DOS下查看物理地址的话,你还可以通过"MACchger -V"来运行并查看物理地址。
http://www.blog.com.cn/user1/4623/uploa ... 219452.jpg
hehe,物理地址真的被改为 00-01-23-45-67-89
4.高级应用
MACchger不光可以修改网卡物理地址,还可以备份网卡的EEPROM,或者刷写网卡的EEPROM。你可能要问用它干吗呢?改呗,就准改主板 BIOS或撺改显卡卡类型,难道就不能改网卡的"BIOS"?这也就是它为什么不叫"MAC修改器",而叫"RTL8139 Ethernet Card EEPROM Flasher"的原因了。
备份指令是:"MACchger -S",保存网卡EEPROM镜像到当前目录下AT93C46.bin文件中。
刷写指令是:"MACchger -W",刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中,需要输入"OK"(注意:是大写的)来确认。
就如上面所说的,网卡的EEPROM的内容还不止修改MAC地址,所有网卡的配置信息也在里面,如果你感兴趣的话,你还可以执行修改 AT93C46.bin文件中的内容。但你还要注意网卡中的内容是按照大端的顺序存放的,而Intel的CPU是按照小端来存放内容的。比如: 0x8129,0x8139,0x10EC 如果是大端:0x81,0x29,0x81,0x39,0x10,0xEC (按照高字节,低内存地址)而小端:0x29,0x81,0x39,0x81,0xEC,0x10(按照高字节,高内存地址)。,RTL8139 的EEPROM 是分成两种一种是X16按照 16位为 1字,大端储存的方式进行的(用的比较多),另一种是X8按照8位为1 字,它就不存在此问题。我已经将这些转化做到程序中,修改内容就按照下表进行就可以了。
但最后还要提醒一下,修改后的bin还需要进行校验和计算,并将结果存放在bin 中的0x32~0x33位置,如果校验和不正确,是无法被刷进EEPROM,我的程序会检查这一点的,并会提示正确的校验和的。因为如果含带错误的校验和的bin是不会被RTL8139读取的,它会采用默认值进行初始化的,也就起不到刷写的意义了。
建议用户在修改EEPROM前,先通过”MACchger –S”的指令进行备份EEPROM到当前目录的”AT93C46.bin”再用“MACchger -C”来修改MAC,重起之后如果发现有问题或者物理没有修改成功,就再用”MACchger -W”写回备份的EEPROM。
我想用此软件来感谢我的母校大连理工大学并欢迎下一届新生的登记注册成为我的一名校友。
其实真正的实力来源于自己的努力。
附件: 2005958802.rar (2006-3-5 19:51, 74.09 K)
该附件被下载次数 36
相关关键字: RTL 永久性 网卡
永久性修改网卡(RTL8139)物理地址硬方法
永久性修改网卡(RTL8139)物理地址硬方法
——RTL8139 Ethernet Card EEPROM Flasher 介绍
作者 :Quby [kju:bi]
日期 :2005-8-29
关键词:BIOS ROM EEPROM FlashROM 网卡 修改 物理地址 ethernet change MAC MACchger
主板上有BIOS 的Flash Rom 可以通过BIOS系统的提供商,或者是主板的制造商那里得到刷主板的Flasher ,AMI-AMIFLASH 、AWARD-AWDFLASH还有ASUS的图形化的刷BIOS软件等等。你可以通过修改软件来修改ROM中的内容,比如增加一个自定义的开机画面,增加一个硬盘还原系统或者直接在ROM中增加一个升级ROM的小组件,这样升级BIOS就很容易了。
显卡上有显卡的BIOS的ROM,可能并不是所有的人的显卡的BIOS都可以改,因为只有显卡的BIOS是Flash ROM 或者是EEPROM的才可以修改更新。显卡的ROM改造和主板的改造目的是有所不同的。改显卡的ROM 主要是为了进一步超频,因为显卡的驱动一方面是通过显卡的Device ID 来识别显卡的核心,另一方面是通过显卡的性能参数,比如核心频率,显存频率。只有这两个方面同时符合另一类显卡的要求时才可以被系统识别成功。
这些信息都是从系统RSET 后显卡通过自身的ROM 进行加载信息来初始化显卡(寄存器)。这也使修改ROM的目标更明确,更吸引人(9550(¥400)->9600 pro(¥800)->9600XT(¥1200~……)),并且这些都是免费的。而这些只需要一个 Flasher!,具体的刷法就自行去参考网上资料我这里就不多说了,现在这种文章很多的。
其实,除了以上能刷固件的东西还很多(CD-Rom、 DVD-Rom、 MP3、数码相机……)但是真正是中国人自己写的升级软件,或者是修改软件并不多,大多数都是外国人高手也多出自俄罗斯或者是德国。所以我决定要自己写一个刷 ROM的软件,并且是别人没有写过的软件。
这些设备中还有一种设备——网卡,它本身也可以连接一个EEPROM(64*16),来储存网卡信息,包括网卡设置及物理地址,Device ID、Vendor ID等等。但你们可能要问为什么要改网卡的EEPROM,因为这样就可以自己定义网卡的物理地址,你还可以Clone网卡的物理地址(这以上都是为了正常的试验或者是合法的拷贝的基础上,在此只是学术上的讨论)。你可能说在windows下可以通过修改注册表或者是修改网卡属性中的配置信息中的高级选项设置Network Address项。对!这都没错,但是这些都是建立在Windows平台下,如果没有了Windows,你该如何办,或者说你换操作系统怎么办,再改一遍?如果你不嫌累,但如果你用的是Linux或者是DOS那又怎么办呢?? 用我编的这个小软件MACchger改EEPROM就能让它一次性并且是永久性的搞定。
网卡的物理地址在EEPROM中的位置根据网卡的芯片不同,布局也就不同、但他们都有共性就是他们都是储存在EEPROM上,当网卡加电时,通过网卡芯片的自动读取功能从EEPROM中读取出来,通过硬件机构设置到网卡的寄存器中,之后在通过系统的自检,操作系统的网卡的Driver加载把网卡的寄存器映射到物理内存空间或者是I/O空间。通过读写网卡芯片映射的寄存器,来操纵网卡来读或修改网卡EEPROM。
我利用暑假的10天时间写了一个软件,利用它可以永久性修改网卡的物理地址,或者更新备份网卡EEPROM的软件。此软件是针对 Realtek RTL8139 10 /100 M 自适应网卡,如果不太清楚,看一下设备管理器中的网络适配器中的信息。如果是 “Realtek RTL8139 Family PCI Fast Ethernet NIC”或者是有”RTL8139”字样的都可以。我的同学中不管是Intel 还是 AMD 的CPU ,不管是集成网卡还是独立网卡,百分之八十都是这种型号的。
你准备好了修改你网卡的物理地址了吗!
首先,你需要准备进DOS,因为软件是运行在DOS环境下的!(Windows 下不可,Windows 下有保护机制,它会禁止对硬件的一切直接访问,除非是驱动。等我考完研,我会修改这个程序让它能在Windows 下运行),不必是纯DOS,只要有一张windows 98 启动盘或者是DIY的 MS-DOS 7.1的启动盘(建议),引导进DOS。按以下具体方法操作即可。
1.查看帮助信息
当进入DOS后,运行MACchger.exe程序,就会看到如下的欢迎界面。如果程序提示不能运行,有什么 DMPI 的字段,你就先运行一下文件中的CWSDPMI.EXE的文件,再运行以上命令。
如果看不懂或看不清以上文字,我就用中文为大家解释一下,具体使用方法如下:
输入命令:MACchger 后加如下参数(只可加一个或者不加,参数全是大写)
-H : 打印帮助信息
-V : 显示网卡物理地址
-C : 修改网卡物理地址
-S : 保存网卡EEPROM镜像到当前目录下AT93C46.bin文件中,已将EEPROM中的大端顺序修改为小端顺序了。
-W : 刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中。
就如帮助信息说的你可以通过"MACchger -H"来看帮助,也可以什么参数都不加也可以达到相同目的。
2.修改物理地址
刚才说了半天关于EEPROM相关的东西,看起来挺复杂,但通过MACchger来修改网卡物理地址却一点都不麻烦。你只要记得原来网卡的物理地址和要改的物理地址,通过"MACchger -C"来运行MACchger。并按提示先输入原来网卡物理地址,再输入要改的物理地址,最后输入"OK"(注意:是大写的)来确认以下就可以了。最最后,你还要重新启动计算机,修改的物理地址只有当机器重起后才会生效。
3.查看物理地址
如果你想在DOS下查看物理地址的话,你还可以通过"MACchger -V"来运行并查看物理地址。
http://www.blog.com.cn/user1/4623/uploa ... 219452.jpg
hehe,物理地址真的被改为 00-01-23-45-67-89
4.高级应用
MACchger不光可以修改网卡物理地址,还可以备份网卡的EEPROM,或者刷写网卡的EEPROM。你可能要问用它干吗呢?改呗,就准改主板 BIOS或撺改显卡卡类型,难道就不能改网卡的"BIOS"?这也就是它为什么不叫"MAC修改器",而叫"RTL8139 Ethernet Card EEPROM Flasher"的原因了。
备份指令是:"MACchger -S",保存网卡EEPROM镜像到当前目录下AT93C46.bin文件中。
刷写指令是:"MACchger -W",刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中,需要输入"OK"(注意:是大写的)来确认。
就如上面所说的,网卡的EEPROM的内容还不止修改MAC地址,所有网卡的配置信息也在里面,如果你感兴趣的话,你还可以执行修改 AT93C46.bin文件中的内容。但你还要注意网卡中的内容是按照大端的顺序存放的,而Intel的CPU是按照小端来存放内容的。比如: 0x8129,0x8139,0x10EC 如果是大端:0x81,0x29,0x81,0x39,0x10,0xEC (按照高字节,低内存地址)而小端:0x29,0x81,0x39,0x81,0xEC,0x10(按照高字节,高内存地址)。,RTL8139 的EEPROM 是分成两种一种是X16按照 16位为 1字,大端储存的方式进行的(用的比较多),另一种是X8按照8位为1 字,它就不存在此问题。我已经将这些转化做到程序中,修改内容就按照下表进行就可以了。
但最后还要提醒一下,修改后的bin还需要进行校验和计算,并将结果存放在bin 中的0x32~0x33位置,如果校验和不正确,是无法被刷进EEPROM,我的程序会检查这一点的,并会提示正确的校验和的。因为如果含带错误的校验和的bin是不会被RTL8139读取的,它会采用默认值进行初始化的,也就起不到刷写的意义了。
建议用户在修改EEPROM前,先通过”MACchger –S”的指令进行备份EEPROM到当前目录的”AT93C46.bin”再用“MACchger -C”来修改MAC,重起之后如果发现有问题或者物理没有修改成功,就再用”MACchger -W”写回备份的EEPROM。
我想用此软件来感谢我的母校大连理工大学并欢迎下一届新生的登记注册成为我的一名校友。
其实真正的实力来源于自己的努力。
附件: 2005958802.rar (2006-3-5 19:51, 74.09 K)
该附件被下载次数 36
相关关键字: RTL 永久性 网卡