之前看到某论坛的历史记录,TL-R470GP-AC v1.0 跟当时的 gamer 上有人发的 MR100GP-AC 板子看上去一模一样,不愧是一家。
为了研究 TL-R470GP-AC 装 WireGuard,花260又买了一个新的,拆机。

然而,试了 J1 和 J4 的各种组合,都看不到串口数据。
sskaje's blog, study & research on technology
之前看到某论坛的历史记录,TL-R470GP-AC v1.0 跟当时的 gamer 上有人发的 MR100GP-AC 板子看上去一模一样,不愧是一家。
为了研究 TL-R470GP-AC 装 WireGuard,花260又买了一个新的,拆机。
然而,试了 J1 和 J4 的各种组合,都看不到串口数据。
TL-R470GP-AC 是 TP-Link 的一款基础的路由+PoE交换+AC的3合一设备。图省事和便宜给老家换了这套方案,配上3个 ax 的AP。但是这款设备没有看到第三方固件。
想研究开启SSH,所以先从改配置文件入手,但是配置文件是加密的,于是第一步回到定位加密算法或者直接解密/加密配置文件。所有试验均在ubuntu 18.04 下完成。
1 官网下载固件,binwalk -e 看固件,研究web 的 cgi 程序,可以定位到配置文件解密程序的可执行文件
2 file 看一下程序,mipsel
1 |
ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked, interpreter /lib/ld-uClibc.so.0, corrupted section header size |
3 ubuntu 下安装qemu
1 |
apt install qemu binfmt-support qemu-user-static |
4 准备执行环境,在 squash-root 里执行
1 |
cp $(which qemu-mipsel-static) bin/ |
5 复制备份文件文件到 squash-root 里,执行解密命令
1 |
chroot . qemu-mipsel-static usr/bin/xxxxx -d -i /config.bin -o /config.tar.gz |
目前还没看到怎么开 SSH,能搞定的话,再去搞定 wireguard 就完美了。至于加密,有现成的工具可用。
接下来分析配置文件吧,全靠猜。
先看看tar包的内容
1 2 3 4 5 6 7 8 9 |
# tar tvf config.tar.gz drwxr-xr-x root/root 0 tmp/cfg_save/backconf_tmp/ -rw-r--r-- root/root 56 tmp/cfg_save/backconf_tmp/product_name_conf -rw-r--r-- root/root 33 tmp/cfg_save/backconf_tmp/md5_sum_conf -rw-r--r-- root/root 64517 tmp/cfg_save/backconf_tmp/tmp_conf.tar.gz drwxr-xr-x root/root 0 tmp/cfg_save/backconf_tmp/backup/ -rwxr-xr-x root/root 20577 tmp/cfg_save/backconf_tmp/backup/uc.conf -rw-r--r-- root/root 15791 tmp/cfg_save/backconf_tmp/backup/uc_conf.tar.gz -rw-r--r-- root/root 44122 tmp/cfg_save/backconf_tmp/backup/non_uci.tar.gz |
之前为了自己方便,造了个 dig web interface 的轮子,查询 DNS 记录。
这次简单粗暴地做了个工具,找了个预生成的 dns 服务器 IP 列表,把要查询的域名记录循环扔给各个服务器去查,拿到的最终 A 记录去重做列表,网页测速度。地址在:https://ip.rst.im/dns/
然后,可能是有效的 Switch 会用到的服务器列表:
dragons.hac.lp1.dragons.nintendo.net
bugyo.hac.lp1.eshop.nintendo.net
storage.lp1.scsi.srv.nintendo.net
receive-lp1.dg.srv.nintendo.net
bcat-topics-lp1.cdn.nintendo.net
其中,*.cdn.nintendo.net 和 *.d4c.nintendo.net 目测都是在 akamai 的cdn 上,理论上拿路由器把这些域名都扔给香港的服务器去解析就会好很多。
参考 https://www.whatuptime.com/ 。步骤如下
2 建一台虚拟机,设置密码,关掉,进recovery,改成 Boot from Recovery ISO,启动后选择 6 Interactive Shell
3 原作者给了一个 dropbox 的磁盘镜像下载地址,但是这个磁盘镜像是基于微软古老的公开的 Windows 10 Enterprise Evaluation 制作的,不管怎样,有个现成的总归省事。
1 |
wget -O- https://www.dropbox.com/s/e2oglmh3tdu3boz/WIn10.gz?dl=1 | gunzip | dd of=/dev/vda |
4 改回磁盘引导,Console 连进去,用户名 WhatUpTime.com,密码: P@ssword64 。先改用户名密码,然后根据后台的信息设置网卡。我创建的 Compute Optimized 的droplet,系统里的两个网卡,Ethernet 2 和 3,我改的2,可用。建好网络后,选用老版本的 Windows 远程桌面客户端 或者 Mac 版的连上去,Windows 10 2004 的远程桌面连上去提示 CredSSP 的错误,简单说,这个系统太老了。Windows Update之后,这个提示会消失,但是 Digital Ocean 的 Web Console 在 Mac Chrome 下,鼠标跟虚拟机里的鼠标对不上,这是一个有挑战的体验。
5 进系统,该更新更新,但是更新之后,系统始终显示的是 Windows 10 Enterprise Evaluation,版本也始终停留在 1607,虽然更新能装到 2018 年 4 月。注册表的版本文字也改过了,正版 Enterprise 的 license key 也试过了,都无法直接升级;Windows 10 Update Assistant 也提示无法升级;Media Creation Tool 也死;DISM 查询版本也失败。需要从官方下载 2004 business edition 的 ISO,直接运行 setup.exe,运行后,系统会提示有更新。
6 该更新更新,更新完重启后再进系统,再运行 setup.exe,安装。
注1:该虚拟机磁盘镜像只有16G,系统装完之后基本就满了,磁盘管理里直接扩展卷即可。
注2:Snapshot 不用尝试了,创建的snapshot 直接生成droplet会出错不可用,创建标准虚拟机后用 snapshot 重建 droplet 也不可用。
参考 https://glitchwitch.io/blog/2018-09/windows-10-on-digitalocean/ 全手工。
准备: windows 10 2004 ISO, virtio-win ISO,一台有加载了 kvm_intel 的linux。
Virtio-win 驱动从这里下载 https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/ 。win10 2004 至少需要 virtio-win-0.1.185,低版本会蓝屏。
以 Ubuntu 18.04 为例,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
# Install qemu apt-get update && apt-get install qemu -y # Create disk image qemu-img create -f raw windows10.img 16G # Start Windows 10 VM with VNC qemu-system-x86_64 \ -m 1G \ -cpu host \ -enable-kvm \ -boot order=d \ -drive file=win10-os.iso,media=cdrom \ -drive file=windows10.img,format=raw,if=virtio \ -drive file=virtio-win.iso,media=cdrom \ -vnc :0 \ # Press CTRL + C to stop virtualization |
装好之后,直接vnc 远程连这台主机的5900,进入安装步骤。安装过程需要加载外部驱动,E:\NetKvm\w10\amd64 和 E:\viostor\w10\amd64 ,去掉 隐藏不兼容驱动的勾,都选择第一个。识别出硬盘后,正常安装,等到系统提示自动重启倒计时的时候,ctrl + c 结束 qemu 进程。
1 |
dd if=windows10.img | gzip -c > windows10.gz |
压缩镜像后,gzip文件大概 4.7G,先在DigitalOcean上同机房建一个$5的服务器,把文件传上去,装一个nginx。剩下回到第一步,用vpc内网IP下载镜像、安装。
这个版本的镜像会自带一个恢复分区,需要删除了才能去扩展磁盘卷。管理员CMD下操作命令如下:
1 2 3 4 5 6 7 |
diskpart list disk select disk 0 list partition select partition 3 delete partition override exit |
结束之后去磁盘管理里,把C盘的卷直接扩展即可。
You are not authorised to read all content in this post.
Please login…