Buffalo N300 路由器破解


这款型号路由器无法直接升级openwrt或ddwrt,需要通过TTL连接uboot完成。TTL端口暴露在主板上,无引脚,需要自行焊接。

路由型号: Buffalo AirStation N300

TTL连线

在主板上找到:

从左到右依次为 RX TX GND VCC。焊接后在外壳打孔穿出。

TFTP

直接使用开机后TFTP发送会遇到问题,问题原因可能为路由器端uboot无法arp计算机,根本原因可能是如下的“可能的连接问题”

可能的连接问题

可能由于HAGIBIS的USB Ethernet Adapter的问题,或是路由器重启(或电源插拔)时的电泳,每一次路由器重启会导致连接失效。具体表现为路由器无法向计算机发送数据,出现RequestARPTimeout等。也无法使用tftpboot连接至电脑。

uboot TFTP

  1. 连接ttl串口,Mac端输入screen /dev/tty.SLAB_USBtoUART 115200

  2. 接上路由器电源

  3. 按Ctrl+C,进入ar7240>命令界面

  4. 将路由与计算机通过网线连接(或之前已连接,此情况下需要重置网卡驱动,可以使用:Linux: modprobe -r r8152然后modprobe r8152;Parallels虚拟机:将网卡设备在主机/虚拟机间切换;计算机:插拔USB网卡,但是同时会导致需要重新执行第1步)

  5. 计算机端 sudo ifconfig 网卡 192.168.11.2(enp0s29f6u1)

  6. sudo arp -s 192.168.11.1 路由器eth1的MAC地址(00:03:7F:09:0B:AD)

  7. 为了证明网络通信状况,计算机端执行 nc -ulp 69(Linux命令,若Mac下不需要-p参数)

    在路由器端执行 ar7240> tftpboot

    若计算机端出现bufoctettimeout5,证明数据发送成功

  8. 计算机端执行:

    tftp [192.168.11.1](在Linux下可能需要输入ip参数)
    tftp> binary
    tftp> trace
    tftp> rexmt 1
    tftp> timeout 60
    tftp> connect 192.168.11.1(若启动tftp的命令已经输入ip参数,不必执行此命令)
    tftp> put 固件文件名
    
  9. 路由器端执行

    ar7240> TFTPS
    
  10. 接收完毕后,路由器端使用ar7240> run u_fw更新固件

  11. 8-10步也有替代方案,使用Linux端tftpd(未能成功)或Windows端Cisco TFTP Server(有成功过),并在服务根目录放入firmware.bin(文件名只能是这个),然后在路由器端执行:

    ar7240> run ut_fw
    

注意:固件只能使用纯固件数据,开头magic为27 05 19 56,hexdump可以观察到ASCII字符: MIPS Linux Kernel Image。从dd-wrt官网下载的固件为trx格式,使用tftp形式刷新时应该先执行:dd if=firmware.trx of=firmware.bin bs=1 skip=28 seek=0,去除trx头部28字节。另外buffalo官方固件格式头部为bgn,中间有start等,此类固件被加密,不能直接使用在tftp更新(具体怎么做尚不知道)。

固件更改

固件更改使用的固件类型:从dd-wrt的WEB GUI界面上能够更新的固件,文件名类似为whr-g300nv2-firmware-MULTI.bin

  1. cd firmware-mod-kit-read-only

  2. ./extract-firmware.sh ../fw/whr-g300nv2-firmware-MULTI.bin ../extracted/

    第一参数为原始固件,第二参数为解包目录

  3. ./ipkg_install.sh ../ipkg/shadowsocks-spec.ipk ../extracted

    第一参数为ipk路径,第二参数为工作目录

  4. 修改…/extracted/logs/config.log,修改其中的FOOTER_SIZE=‘0’,FOOTER_OFFSET=’<FW_SIZE>’(注意如果不是whrg300nv2的dd-wrt固件,应该首先观察第二步binwalk的输出,也就是…/extracted/logs/binwalk.log文件,看看rootfs之后是否有其他数据,如果没有,观察rootfs结束处与固件末尾距离,并观察固件文件末尾数据,判断是否有必要的footer数据,如果不能肯定,不执行此步)

  5. ./build-firmware.sh ../extracted,如果提示image过大,修改…/extracted/logs/config.log中的FW_SIZE和FOOTER_OFFSET,FWSIZE修改为提示的NEWSIZE+FOOTER_SIZE,FOOTER_OFFSET修改为提示的NEWSIZE,然后再次执行此步骤(注意此步骤FWSIZE不能大于固件存储空间!)

  6. 生成固件成功

WHR G300N V2情况

  • 固件空间最后8K(待验证)为nvram存储区,会导致EEPROM CRC Error!
  • 需要删除文件来添加定制程序

对于ddwrt:

bf040000-bf3dffff 为ROM
bf3e0000-bf3effff 为nvram

最大ROM大小 3801088

ShadowSocks

  • 使用spec-polarssl
  • 需要添加polarssl库
  • spec仅支持ss-redir、ssl-tunnel、ssl-rules
  • 其中ssl-redir为透明代理

[Error] Bad CRC of EEPROM

清空CRC,使得开机重新校验

ar7240> setenv buf_crc
ar7240> saveenv

参考

路由走动翻墙 openwrt+shadowsocks http://abublog.com/openwrt_shadowsocks_dnsmasq_fuckwall.html

在openwrt路由器上部署代理,客户端零配置FQ https://scola.github.io/deploy-proxy-on-openwrt--client-need-not-to-set/

WHR-G300N V2 https://www.dd-wrt.com/wiki/index.php/WHR-G300N_V2

TRX vs. TRX2 vs. BIN http://wiki.openwrt.org/doc/techref/header

Shadowsocks + GfwList 实现 OpenWRT 路由器自动翻墙 https://cokebar.info/archives/962

Shadowsocks + ChnRoute 实现 OpenWRT 路由器自动翻墙 https://cokebar.info/archives/664

dd-wrt Development http://www.dd-wrt.com/wiki/index.php/Development

Firmware Modification Kit https://code.google.com/p/firmware-mod-kit/

DD-WRT部署ShadowSocks科学上网 http://www.router008.com/DD-WRT-ShadowSocsk.html

Shadowsocks-libev for OpenWrt https://github.com/shadowsocks/openwrt-shadowsocks

OpenWrt-dist http://sourceforge.net/projects/openwrt-dist/?source=typ_redirect

OpenWrt路由器运行shadowsocks-libev客户端 https://softwaredownload.gitbooks.io/openwrt-fanqiang/content/ebook/03.3.html

Buffalo Asia Pacific WHR-G300N Stock Firmware http://buffalo.jp/support_ap/support/products/whr_g300n_u.html

用ttl线救活whr-g300n v2 http://www.right.com.cn/forum/thread-53267-1-1.html


Author: Texot
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint polocy. If reproduced, please indicate source Texot !
 Previous
Having Fun in Smartcar Competition Having Fun in Smartcar Competition
In 2014 I decided to participate in Freescale Smartcar Competition with my friends. Eventually we didn’t have the time t
2016-02-01
Current 
Buffalo N300 路由器破解 Buffalo N300 路由器破解
这款型号路由器无法直接升级openwrt或ddwrt,需要通过TTL连接uboot完成。TTL端口暴露在主板上,无引脚,需要自行焊接。 路由型号: Buffalo AirStation N300 TTL连线 在主板上找到: 从左到右依次为
2015-09-19
  TOC