-
-
[翻译][翻译]逆向Google Voice设备OBi200 (二)
-
发表于: 2017-10-19 21:09 4212
-
逆向Google Voice设备OBi200 (二)
在本文的第一部分,我详细介绍了对OBi200的固件分析和获取root Shell的过程.在本文,我将展示区分串口针脚及利用串口获取控制台访问.
串口通信协议.
回忆一下上篇文章中监听/dev/ttyS0的串口:
这是一个非常赞的开端,其透露出两点信息:第一,这明确了其串口为 8250 UART(典型的4针脚接口),极大地缩小了我们的搜索范围;第二,其指明了该接口的波特率.这些是与该端口通信所必须的条件.
鉴别针脚
尽管UART接口并未在业界形成统一的标准,但是要区分出OBi200上潜在的接口还是很容易的:
从上图可以看到,除了一个名为J17 的4 针模块,其他大多数测试点都已标记完好.由于最右边的那个针脚是方形的,暂且将它命名为1号吧.
现在只剩这几个针脚,接下来要做的就是区分这些UART针脚.看,我已经准备好了USB UART转换器:
我首先开始找出接地端.用万用表连续测量各个针脚对RJ45外壳的电压,我迅速地确定4号引脚为接地:
搞定了1个,剩下的是略显复杂的另外3个脚的区分.为此,我专门测量了在设备启动过程中这3个脚的直流电压(详细过程请浏览这篇文章),结果如下:
>1号脚电压在启动过程中从2.3V到3.2V波动
>2号脚电压恰巧维持在略低于3.2V
>3号脚为3.3V 恒定电压
1号针脚的活动与其他针脚明显不同,其电压的波动就像是与主板进行数据发送的过程,故此,认定1号脚为Tx端.
2号脚和3号脚的电压测量结果极为接近,但是仍有足够的差异区分他们. 3号脚,电压稳定在3.3V,表明其为 VCC;2号脚电压仅是略低与VCC,故为Rx(仅剩的选择).特别注意,如上图所示,尽管连接USB UART转换器并不需要用到3号脚,我们测试该脚仅仅是为了消除其为Tx 或 Rx 的可能性.
控制台连接
确定J17的针脚后,用USB UART转换器连接.注意,主板上的Rx 接转换器的Tx ,如下图所示:
接下来,我打开了一个终端并开启了一个screen会话,波特率设置为上面第一幅截屏所示是一致:
screen /dev/ttyUSB0 115200 8N1
这样,我就成功获得了控制台的访问权,并且无需密码哦!
Bootloader
成功连接上控制台后,我还想看下它的bootloader,于是,我重启设备:
通过与U-boot交互,我得以了解更多有关主板和内存的信息:
通过对硬件底层的访问.我们能够看到更多在启动过程的信息.例如,系统控制台消息输出stdout:
由图可知,Telnet服务在系统启动时随之启动,只是在载入OBi 服务后被kill掉了(由上篇文章中的脚本部分可知).
接下来>>>
现在,我已获得控制台的root访问权限,我希望进一步深入探究其运行的服务和obiapp 二进制文件.
相关内容,敬请期待本文第三部分!
原文:https://randywestergren.com/reverse-engineering-obi200-google-voice-appliance-part-2/
译/ 看雪翻译小组 StrokMitream
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法
赞赏
- 通过 SWD 读写 STM32 固件 20441
- [翻译]我的创业产品如何被 2.2 W 美金收购 ? 7716
- [原创] 20 年征文 | 看雪之路 4400
- [翻译]使用 TensorFlow 机器学习自动化 RF 侧信道攻击 14268
- [翻译]固件分析--工具、方法技巧浅析(下) 19692