找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 13617|回复: 22

永久修改 DD-WRT/Tomato 固件中的 MAC 地址

[复制链接]
永久修改 DD-WRT/Tomato 固件中的 MAC 地址。


处理的办法很简单,只要修改掉路由器中的 MAC 地址就可以了,讲到这里先说一个概念,一般来说,无线路由器的整个 Flash 被称为 wholeflash ,其中除了包含我们常说的固件(比如 DD-WRT 或者 Tomato)外,还有 cfe 、nvram 、kernel ,而 MAC 地址保存的位置有 nvram 和 cfe 。但是在 nvram 里面的 MAC 地址改掉后,只要 RESET 或者恢复出厂设置,就会被自动恢复。其实,nvram 中的 MAC 地址是由 cfe 来生成的,每次 RESET 或恢复出厂设置后,cfe 都会自动生成一份全新 nvram 。所以要一劳永逸的话,只有去修改 cfe 中的 MAC 地址了。

修改 cfe 的方法有两种,一种是利用 JTAG 线,这需要一定的硬件知识,而且要有专门的 JTAG 线和电脑上的并口配合使用才能完成,比较复杂。还有一种是利用 Telnet 登陆路由器后,用路由器内的 mtd 设备来完成。在这里我就说一下第二种方法。

1. 用 Telnet 命令登陆路由器(要注意一点,用户名一定要写 root,哪怕你自定义过用户名,但在这里也还是要用 root 才可以)。

2. 输入:cat /proc/mtd ,一般会返回如下信息:
dev: size erasesize name
mtd0: 00040000 00010000 "cfe"
mtd1: 003b0000 00010000 "linux"
mtd2: 002bd000 00010000 "rootfs"
mtd3: 00010000 00010000 "nvram"
mtd4: 00010000 00010000 "ddwrt"

从返回的信息中,我们可以看到 cfe 其实就是放在 mtd0 区内的。

3. 现在我们先把 cfe 备份出来,使用命令:dd if=/dev/mtd/0 of=/tmp/cfe.bin ,一般返回如下信息:
512+0 records in
512+0 records out

这样就把路由 FLASH 中的 cfe 备份到了 /tmp/cfe.bin 中去了。

4. 获取现在路由的 MAC 地址,这个方法有很多种了,你可以访问一下 http 方式的管理页,然后把 Lan MAC 记下来(必须是 LAN MAC ,千万别记成 WAN MAC 或者 WLAN MAC 了),也可以用命令: ifconfig eth0 来获取(命令中最后一个字符是数字 0 ,别输入成字母 0 了) 。
假设这里获取到的 MAC 地址是 00:16:11:17:91:95 。

5. 用 sed 命令把 cfe 中的 MAC 地址改掉,假设改成 00:16:11:17:81:95,改好后的 cfe 保存到 cfe.new 文件中。命令格式如下: sed "s/00:16:11:17:91:95/00:16:11:17:81:95/g" /tmp/cfe.bin > /tmp/cfe.new
由于该命令是没有回显的,所以只要运行结束显示提示符,就可以了。

6. 最后用 mtd 命令把新的 cfe 内容写回 cfe 。
mtd write /tmp/cfe.new cfe
如果有提示错误,可以改用以下2条命令进行:
mtd unlock cfe
mtd write -f /tmp/cfe.new cfe

如果提示信息是类似下面的这行,就说明更新完毕:
Writing from /tmp/cfe.bin to cfe ... [w]

7. 完成,您可以在 http 方式的管理页面中,选择恢复出厂默认设置一下,也可以按路由器背后的 RESET 强制恢复。现在路由器的 MAC 地址已经是新的了。

可能有人会问,你只改了 LAN MAC 地址,那路由器还有 WAN MAC 和 WLAN MAC 呢,这两个又怎么改?其实这两个根本不用改的,如果打开 cfe 看的话也可以发现,里面根本没有这两个 MAC 地址,只有 LAN MAC 地址的。那这两个 MAC 地址怎么生成呢?其实很简单,cfe 会自动用 LAN MAC 地址 + 1 和 +2 来自动生成 WAN MAC 和 WLAN MAC 地址的,所以你改掉了 LAN MAC 就可以了。
好象有cfe的修改工具

先把cfe备份下来,然后用这个工具打开,修改后保存,再传过去写入就ok了

哪像要这么计算地址麻烦?

但是贝尔金之类的cfe就是加密的,没法修改
回复

使用道具 举报

总结一下:
sed "s/00:16:11:17:91:95/00:16:11:17:81:95/g" /tmp/cfe.bin > /tmp/cfe.new

比用工具简单, 赞. 不过我还是倾向直接UE...
回复

使用道具 举报

 楼主| | 显示全部楼层
同意。ue可行。
回复

使用道具 举报

就怕没改好刷回去变砖
回复

使用道具 举报

加密的必砖。不加密的CFE也屈指可数。
回复

使用道具 举报

这个不错!
对DD-WRT版本有要求吧,micro版的不支持这些命令。
回复

使用道具 举报

就是说telnet方式可以更新路由器的CFE?
回复

使用道具 举报

贝尔金的不能改。
回复

使用道具 举报

做个记号,有机会试试
回复

使用道具 举报

本质上这个还是修改CFE,加密的研究一下,能否在TTL线进入CFE时按住B来永久修改MAC???
回复

使用道具 举报

这个教程有问题的,看到好多人照这个教程做都砖了,不知道什么原因,我也不敢动手了
回复

使用道具 举报

这个教程有问题的,看到好多人照这个教程做都砖了,不知道什么原因,我也不敢动手了
hellokorea 发表于 2010-1-14 13:28

我估计是应为,有部分CFE是加密的(既带有效验的)如果更改MAC地址的话,当CFE在启动时效验CFE就会失败,不能启动,所以就变砖,杯具了。
回复

使用道具 举报

支持一下,不知道行不行,有空去试一下!
回复

使用道具 举报

4M 64M的贝尔金7231-4P能用这个方式修改LAN MAC吗??
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-9 04:35

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表