永久性修改网卡(RTL8139)物理地址硬方法
永久性修改网卡(RTL8139)物理地址硬方法??RTL8139 Ethernet Card EEPROM Flasher 介绍
作者 :Quby
日期 :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下可以通过修改注册表或者是修改网卡属性中的配置信息中的高级选项设置NetworkAddress项。对!这都没错,但是这些都是建立在Windows平台下,如果没有了Windows,你该如何办,或者说你换操作系统怎么办,再改一遍?如果你不嫌累,但如果你用的是Linux或者是DOS那又怎么办呢?? 用我编的这个小软件MACchger改EEPROM就能让它一次性并且是永久性的搞定。
网卡的物理地址在EEPROM中的位置根据网卡的芯片不同,布局也就不同、但他们都有共性就是他们都是储存在EEPROM上,当网卡加电时,通过网卡芯片的自动读取功能从EEPROM中读取出来,通过硬件机构设置到网卡的寄存器中,之后在通过系统的自检,操作系统的网卡的Driver加载把网卡的寄存器映射到物理内存空间或者是I/O空间。通过读写网卡芯片映射的寄存器,来操纵网卡来读或修改网卡EEPROM。
我利用暑假的10天时间写了一个软件,利用它可以永久性修改网卡的物理地址,或者更新备份网卡EEPROM的软件。此软件是针对RealtekRTL8139 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的文件,再运行以上命令。
http://botu.bokee.com/photodata/2005-10-20/000/735/760/215933/215933.jpg
如果看不懂或看不清以上文字,我就用中文为大家解释一下,具体使用方法如下:
输入命令:MACchger 后加如下参数(只可加一个或者不加,参数全是大写)
-H : 打印帮助信息
-V : 显示网卡物理地址
-C : 修改网卡物理地址
-S : 保存网卡EEPROM镜像到当前目录下AT93C46.bin文件中,已将EEPROM中的大端顺序修改为小端顺序了。
-W : 刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中。
就如帮助信息说的你可以通过"MACchger -H"来看帮助,也可以什么参数都不加也可以达到相同目的。
2.修改物理地址
刚才说了半天关于EEPROM相关的东西,看起来挺复杂,但通过MACchger来修改网卡物理地址却一点都不麻烦。你只要记得原来网卡的物理地址和要改的物理地址,通过"MACchger -C"来运行MACchger。并按提示先输入原来网卡物理地址,再输入要改的物理地址,最后输入"OK"(注意:是大写的)来确认以下就可以了。最最后,你还要重新启动计算机,修改的物理地址只有当机器重起后才会生效。
http://botu.bokee.com/photodata/2005-10-20/000/735/760/215934/215934.jpg
3.查看物理地址
如果你想在DOS下查看物理地址的话,你还可以通过"MACchger -V"来运行并查看物理地址。
http://botu.bokee.com/photodata/2005-10-20/000/735/760/215935/215935.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文件中。
http://botu.bokee.com/photodata/2005-10-20/000/735/760/215936/215936.jpg
刷写指令是:"MACchger -W",刷写当前目录下网卡EEPROM镜像AT93C46.bin到网卡的EEPROM中,需要输入"OK"(注意:是大写的)来确认。
http://botu.bokee.com/photodata/2005-10-20/000/735/760/215937/215937.jpg
就如上面所说的,网卡的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 字,它就不存在此问题。我已经将这些转化做到程序中,修改内容就按照下表进行就可以了。
http://botu.bokee.com/photodata/2005-9-5/000/735/760/121689/121689.jpg
但最后还要提醒一下,修改后的bin还需要进行校验和计算,并将结果存放在bin 中的0x32~0x33位置,如果校验和不正确,是无法被刷进EEPROM,我的程序会检查这一点的,并会提示正确的校验和的。因为如果含带错误的校验和的bin是不会被RTL8139读取的,它会采用默认值进行初始化的,也就起不到刷写的意义了。
建议用户在修改EEPROM前,先通过”MACchger ?S”的指令进行备份EEPROM到当前目录的”AT93C46.bin”再用“MACchger -C”来修改MAC,重起之后如果发现有问题或者物理没有修改成功,就再用”MACchger -W”写回备份的EEPROM。
我想用此软件来感谢我的母校大连理工大学并欢迎下一届新生的登记注册成为我的一名校友。
其实真正的实力来源于自己的努力。 UP 呵呵,做无盘时用过!! up 改这有什么用 这个在台湾瑞昱主页有相关的修改软件 不错啊,不过如果修改mac 不用这么复杂啊,以前搞过还原卡。 好啊,很不错的东西.
不用这么累
不用这么累!用http://www.realtek.com.tw上的pg8139.exe就可以了.你找一个网卡二合一的硬盘保护卡.它的代码里面有读写srom 93c46的代码.很简单的. 世界不太平了,以后内网会乱地 乱了 谢谢!!!!:lol :lol :lol 请教有没有别的网卡的修改方法? 强啊,:lol up