查看原文
其他

路由器基本调试一 UART定位

maxk 看雪学院 2019-09-17

在做IoT分析的时候,拿到设备的UART接口然后进行调试,这是一个很常见的操作。


UART至少包含4个引脚公共引脚GND、电源引脚VCC、输出引脚TXD、接收引脚RXD。我们需要用到其中的3个引脚TXD、RXD、GND。


如果找到UART,通过SecureCRTPortable就可以在PC上得到路由器得控制shell。


那么有业界朋友就会好奇了,定位个UART还需要写一篇文章吗?如果UART被厂商做了手脚,不能输入或者显示数据怎么办?这个就是我今天要和大家分享的内容。



第一步 定位找UART引脚   


这里用Tplink某个型号为例,该路由有很明显的接口,判断相对容易。下面介绍通用的方法。


1、定位GND


GND和至少和一根外接天线是连接相通的,将万用表的档位调整至蜂鸣档,一只表笔置于天线的焊锡点,一只表笔置于串口,如果发出蜂鸣声,就是GND。


2、定位VCC


给路由器通电,VCC是供电引脚,路由器的VCC电压始终未3.30不会发生变化,找到它可以帮助我们排除RXD、TXD。


将万用表调整到直流20V上。将一只表笔放在GND上,测试其他哪只引脚电压为3.3V, 该引脚就为VCC。


3、定位TXD


输出引脚TXD,每次有数据传输的时候该引脚电压都会发生变化。什么时候有数据传输呢?根据个人经验路由器开机的时候有启动信息会从这个引脚输出,这时候电压就会发生变化,此引脚即为TXD。


4、定位RXD


输入引脚RXD,每次有外部数据传输到路由器的时候,RXD的电压都都会发生变化。这里其他3个引脚都确定了就剩下一个很容易的确定了RXD。


有时候会遇见有多个引脚的情况,不能确定RXD,有个最笨,但有效的方法,GND和TXD引脚连接到TTL,然后插在电脑上,一个个测试不能确定的引脚(注意不要接入VCC),输入有回显示的就是RXD引脚。



第二步 将UART引脚通过TTL接入电脑 


USB到TTL接线方法:

  • GND引脚对应TTL的GND

  • RXD引脚对应TTL的TXD

  • TXD引脚对应TTL的RXD




第三步 疑难排查   


找到引脚后,焊好排针, 然后用USB转TTL连接到电脑。


打开Serial,选择COM口,填写波特率,启动路由,正常的显示出了启动信息,但是发现有正常的启动路由信息输出,但输入却没有响应,检查路由硬件。


这款路由芯片是MT7628AN,找到了芯片的DataSheet。发现147、148分别对应TXD和RXD。



观察



首先,RXD、TXD等引脚最终都会接入CPU,在物理上来说,串口引脚和芯片引脚有一条处于通路的电路。怀疑厂商在出厂时,将RXD到芯片的电路做了断路处理。


1、验证猜想


前面已经找到了TXD的芯片引脚,拿出万用表开始检查电路吧。


将万用表调整到蜂鸣档位,将万用表的表笔一只放在芯片147引脚另一只放在找到的TXD引脚,这时传来持续的滴滴声响,表示线路是相通的,前面的都是正确的。再用相同的方法测试芯片148和RXD的时候则没有声响,果然被厂商做了处理。


2、找出问题


观察调试引脚附近一共有三个电阻R89、R18、R288。将万用表调至蜂鸣档测试。


R89电阻属于TXD线路,R18电阻属于GND线路,R288有二个焊点,但没有焊上电阻。芯片148 号RXD引脚到第一个焊点线路为通路,UART引脚(RXD)到第二个焊点为通路。第一个电阻和第二个焊点为断路,问题很简单了,这里有一个电阻未焊接。



3、解决问题


这里电阻的主要作用为分压。由于我手上并没有电阻,用点简单粗暴的办法,点上一点焊锡吧。拿出电烙铁和焊锡丝将R288的二个焊点焊接上。给路由通电,接入电路,正常输入。


启动信息 



输入






- End -



看雪ID:maxk 

https://bbs.pediy.com/user-449241.htm  



本文由看雪论坛 maxk 原创

转载请注明来自看雪社区




往期热门回顾

1、C/C++反混淆方法

2、APICloud解密本地资源到逆向APP算法到通用资源解密

3、我的微信数据监控研究发展过程

4、网络沙场大点兵!2019 WCTF世界黑客大师赛鸣锣开战

5、如何实现 Https拦截进行 非常规“抓包”







京华结交尽奇士,意气相期矜豪纵。今夏与君相约看雪,把酒言欢,共话安全技术江湖梦。


10大议题正式公布!第三届看雪安全开发者峰会重磅来袭!




      ↙点击下方“阅读原文”,查看更多干货

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存