首页
社区
课程
招聘
[原创]Tenda AC6 实机拆解与UART串口的区分方法
发表于: 8小时前 127

[原创]Tenda AC6 实机拆解与UART串口的区分方法

8小时前
127

前言

本文介绍Tenda AC6路由器实机拆解,区分UART串口以及使用USB to TTL、JTAGulator等工具进行测试和连接
具体型号如下所示
图片描述

拆开Tenda AC6在下方可以看到四个连在一起的孔就是我们的UART口
图片描述

下面介绍两种方法用于区分UART的串口

方法一:万用表测量

  • 将万用表调节到蜂鸣档(在电阻档下面)
  • 将黑色笔接在PCB板的金属块位置(可以是任意导电部位,我选择的是锡焊电线的地方)
  • 红色笔在4个PIN之间移动,如果电表发出响声,则认为该pin脚为GND

以图中为例,左侧第一个孔响而其他孔不响,所以左侧第一个孔为GND串口

之后使用适配电源对路由器PCB板进行通电
图片描述
下面开始对RX和TX以及VCC口的测试

  • 将万用表调节到20v直流电压档位
  • 将黑色笔放在刚刚测出的GND上
  • 然后将红色笔一个个放在不同的孔上进行测试,电压最大的就是VCC孔,电压一直变化的则是TX孔

但是这里出现了一个问题,不知道是不是笔者的姿势不对或者别的原因,笔者测出的结果是从左2到左4的结果依次是 3.26v、3.27v、3.28v,并且笔者每个孔都放置了将近1min,电压没有任何变化,以此导致笔者无法区分出其他串口

下面是其他区分方法

  • 如果其中一个引脚的焊接处呈现正方形,则该引脚是VCC
  • 通过万用表测试RX和VCC的电压,一般而言,VCC的电压会稍高几毫伏
  • 在设备启动过程中,VCC的电压恒定不会波动,而RX会有几毫伏的波动

笔者猜测左4的正方形应该就是VCC口,当然这样依旧没有办法完全确认,于是笔者用了个损招,直接使用杜邦线将GND和各个串口短接,如果是VCC口,那么路由器就会短路然后触发重启,但是为什么是损招,因为笔者之前对着小米路由器用的时候发现居然冒出了火花,但是这款Tenda路由器并没有这么强烈的反应,不知道会不会对路由器造成什么损害,但是总归是确认了那个方框就是VCC

然后就需要区分TX和RX

  • 将万用表调节到20v直流电压
  • 黑色笔放在GND上
  • 红色笔放在不同的孔上,然后重启路由器,电压稳定的是RX,电压变化的是TX

用这个方法可以测出左2是RX,左3是TX,还是比较明显的,左2的电压一直在3.27-3.28,但是左3的电压在3.28-1.5之间不断变化。

下面使用 FT232 USB to TTL 测一下验证一下结论
如下所示,使用杜邦线将USB to TTL的RXD和TXD连接起来,然后使用SSCOM来测试一下这个USB to TTL是否完好
显然测试结果是它是好的
图片描述
图片描述

然后我们使用它来对我们的串口做一个简单的测试
注意USB to TTL的TX应该要接在路由器的RX上,也就是左2,那么USB to TTL的RX就要接在左3上,然后GND对应GND,VCC不需要连接,具体如下所示(笔者没有焊接,直接使用杜邦线连接,只要插得紧和焊接效果应该是一样,如果插不紧那就只能焊接一下了)
图片描述
然后使用SSCOM软件进行连接,这里多次实验后得知笔者手头这款Tenda AC6路由器的波特率是 38400
每次修改波特率之后需要重启一下路由器,最后没有乱码,并且最后出现CIL就意味着成功了
下面是重启路由器后输出的内容
图片描述

出现CLI输入?就可以得知路由器中有哪些命令了
图片描述

使用SecureCRT的界面更好看一点(两个不能同时用,一个占用端口另外一个就用不了了)
图片描述

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
CLI> ?
Realtek's command:
 
Commands    Descriptions                             Usage              
--------    ------------                             -----
db          db <Address> <Len>                                          
dw          dw <Address> <Len>                                          
eth         eth                                                         
wlan0       wlan0                                                       
wlan0-va0   wlan0-va0                                                   
wlan0-va1   wlan0-va1                                                   
wlan0-va2   wlan0-va2                                                   
wlan0-va3   wlan0-va3                                                   
wlan0-vxd   wlan0-vxd                                                   
wlan1       wlan1                                                       
wlan1-va0   wlan1-va0                                                   
wlan1-va1   wlan1-va1                                                   
wlan0-va2   wlan0-va2                                                   
wlan1-va3   wlan1-va3                                                   
wlan1-vxd   wlan1-vxd                                                   
eb          eb <Address> <Value1> <Value2>...                           
ew          ew <Address> <Value1> <Value2>...                           
alg         alg                                                         
brconfig    brconfig                                                    
cat                                                                     
cpuload     cpuload                                                     
date        show system local time                                      
excep       cause exception                                             
fastpath    fastpath                                                    
getmib      getmib                                                      
help        Displays a list of commands                                 
?           Displays a list of commands                                 
hexcat                                                                  
dump        Shows a memory dump                                         
hw_nat      hw_nat                                                      
ib          ib                                                          
idd         idd                                                         
ifconfig    ifconfig                                                    
ipfw        ipfw                                                        
irf         irf                                                         
iw          iw                                                          
iwpriv      iwpriv                                                      
ll                                                                      
mac         mac <ifname> [mac addr]                                     
mroute      mroute                                                      
ob          ob                                                          
od          od                                                          
orf         orf                                                         
ow          ow                                                          
pdump       dump a  thread                                              
ping        ping                                                        
port_fwd    port_fwd                                                    
version     Shows build version                                         
ps          Shows a list of threads                                     
reboot      Reset the system                                            
reinit      reinit                                                      
reinit_test reinit_test                                                 
reset       Reset the system                                            
route       set static route                                            
rssi        rssi                                                        
alias       show alias table                                            
rtl_vlan    rtl_vlan                                                    
sp          Sets a threads priority                  [thread ID]        
setmib      setmib                                                      
show        show                                                        
tcpstats    tcpstats                                                    
test_skb    test_skb                                                    
kill        Kills a running thread                   [thread ID]        
release     Break a thread out of any wait           [thread ID]        
trigger_port trigger_port                                                
uptime      Shows system uptime                                         
watchdog    on/off/res/reboot                                           
 
Tenda's command:
msg         ce_power    app_debug   build       stat_link   link_status
iwpriv      realtek     splx        thread      mbuf        debug      
route       et          wlconf      fw          ping        ifconfig   
syslog      time        tenda_arp   arp         envram      nvram      
restart     reboot     
CLI>

方法二:使用JTAGulator来识别

如下所示,GND连接GND,假装我们未知TX和RX随便连接两个接口,VCC不进行连接

图片描述

同样使用SecureCRT进行连接
然后选择V设定电压为3.3v
图片描述

然后使用U进行检测
图片描述

在输出的结果里面可以看到当7号接口(路由器的左3)为TX,6号接口(路由器的左2)为RX,并且波特率为38400的时候可以输出有意义的字符串 Unknown
因此我们可以知道路由器的左2为RX,左3为TX,并且波特率为 38400
图片描述
显然JTAGulator的优点就是非常方便,只需要测出GND然后其他随便连接在接口上就可以了开始测试了
缺点是贵

参考:
UART串口基础及通过万用表定位UART引脚 | kafroc


[培训]Windows内核深度攻防:从Hook技术到Rootkit实战!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回