-
-
[翻译]用UART黑安卓手机硬件
-
发表于:
2018-6-18 21:27
4162
-
我听到你们有些人在问了:“UART是什么?”。不需要怕,这并不是出于你身怀不治之症的哀嚎,UART全写为“Universal Asynchronous Receiver/Transmitter”(通用非同步收发传输器)。这样说可能不太清楚,如果叫他做“RS232”或者“RS423”的话,或许你们当中有些老鸟开始明白了,这是一块将系统资料转换成序列资料的晶片(译者注:然后我们就可以通过这块晶片提供的特殊接口进入系统)。
我们当中或许还有些人记得在那悠久的黄金时代(认真的吗?)我们把玩着Unix系统和整间房子大小的大型主机所提供的命令行,我们大声诅咒者让我们艰苦难熬的串行端口,但是这些端口确实提供一种方法让我们可以读取甚至可能输入资料到这些机器的控制台,从而容许我们暂停开机程序并且在装置上刷入自己的代码和固件。这些端口通常都在设计阶段就已经包含到装置里,所以除非你把主板改造一番,不然在装置报废之前都无法关闭他们。
大部分的消费电子产品都有一些串行端口存在,例如和UART功能类似的JTAG端口:在生产的时候或者在收回和修复的时候用来测试他们的装置(作者的blog还有关于JTAG的文章)。这些端口的接口通常都会在出厂之前移除掉,例如在作者的一个旧Belkin无线路由器上就只有些洞留下来(而移除了接口的介面):
右边的四个洞洞是UART端口(右边的洞则是给USB端点用的),这个路由器让我们可以轻易上手,因为这些洞都已经标记好应该对应哪条线。进行实际操作我们需要把这些洞连到一个USB接收器,然后我们可以访问路由器的系统控制台(指令行一样的东西,视乎工程师的细心程度可以让你主动进行操作或者只能让你被动地看系统输出的资料)。
为了让我们更容易接线,我们先焊接一些针接头到这些洞里,就好像下图所示。因为本人不擅长焊接所以我是不会给你看背面的:)
好了,现在我们可以把这些线接到一个“USB to UART module”(USB转UART模块)。这些东西很便宜,刚刚看到天猫有卖。这个东西会处理好所有无关痛痒的事情,你只需要把线插好然后当它是一个串接端口用就可以了。
最后我们只需要对齐这些线,不要插错了:
把他们连好之后就可以插进电脑里了:
你们或许会感觉被我骗了,因为我那个蓝色的路由器不可能插了线就变绿了。其实不是我骗你,是因为这个绿色的老古董Sagem路由器才是我真正测试的设备,只不过我忘记拍照片指出UART那几个洞洞是什么样子所以只好用其他路由器来补了两张照片放在前面。
总之你现在可以用你喜欢的串接端口工具,例如HyperTerm或者minicom之类的,然后给路由器接上电源看他开机的过程:
这是个简单的技巧,你现在可以尝试传输恶意的固件到你的路由器撷取经过这个无线路由器的封包……除非你的路由器很严格而你也觉得这样太麻烦还不如课金去买个小小的装置插到路由器上来监听封包。
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
最后于 2019-2-2 13:38
被kanxue编辑
,原因: