首页
论坛
课程
招聘
[原创]智能硬件入门-小知识汇总
2018-6-10 15:08 8803

[原创]智能硬件入门-小知识汇总

bxc 活跃值
6
2018-6-10 15:08
8803
最近没研究出什么干货,就把以前研究智能硬件时学到的一些小知识、小技巧,张贴出来,方便新手学习吧~

  • 硬件调试
    • UART:即通常所说的TTL电平的串口,是我接触到智能硬件中,最为广泛的调试接口,通常用于与嵌入式系统调试通信。如果嵌入式系统为Linux的话,一般UART接口对应的就是一个虚拟控制台(tty设备)。
    • JTAG:JTAG接口好像最初设计出来只是为了验证PCB线路连接的,后来逐渐发展为了硬件级别的调试接口。使用JTAG去调试硬件,软件,几乎可以完全接管CPU,随意的打断CPU运行,以及设置断点。但因为各种架构乃至于CPU之间的JTAG指令并不一样(印象中IEEE的JTAG标准好像只规定了2条指令的比特码,分别是BYPASS和EXTEST指令,并且没有规定指令比特码的长度,其它指令是由厂商指定的,而大部分调试用的指令,则是厂商扩展的,可以说JTAG标准没有规定JTAG接口可用于调试CPU内核),所以没有通用的JTAG调试器,好在ARM系列的CPU,JTAG指令比较通用,可以配合OpenOCD来调试嵌入式系统固件。
    • USB-OTG:接触过一个华为的4G CPE设备,有暴露一个USB接口,平时可插U盘当存储。经过特定操作后,该USB接口可用USB公对公线直连PC电脑,做4G Modem,还可以开启telnet。
  • 提取固件
    • 拆Flash方法:提取嵌入式系统的固件最简单暴力的方法一般就是拆Flash上编程器(常见的Flash一般是SOP8,SOP16,TSOP48引脚的。有经验的人,一块PCB上一眼就能看出哪个IC是Flash),不过这个方法要求具备一定的焊接能力,还需要有额外的硬件辅助,才能读出固件,对个人玩家来说,不是很理想。
    • 读取mtd设备:如果嵌入式操作系统是Linux,那么通常存储固件的Flash会被挂载到/dev/mtd*设备上。可以通过cat /proc/mtd命令查看各个mtd块的用途。然后使用cat /dev/mtd0 > /mnt/usb0_0/mtd0.bin命令导出mtd0的内容,实现dump系统固件的目的。
  • 固件分析
    • binwalk:这个工具是很多大牛用来分析二进制固件用的,不过本人没用过,就不多做概述了。
    • squashfs: 就我接触过的智能硬件,大多数系统固件都是squashfs格式,或者是封装的该格式。这种格式在Windows可以直接用7Zip解压,但高级的解包打包操作,只能在Linux系统下进行。这种格式有个文件头魔法字:sqsh或者hsqs,可以在16进制编辑工具里搜索它们,来定位文件系统的位置。
  • 软件调试
    • Telnet:绝大多数智能硬件都会留有telnet功能,但一般都不会默认开放的,需要运行厂商特定的工具,或者执行一些特定的操作,才能打开设备的Telnet端口(比如华为ONT的使能工具,雄迈IPC的一个名为OpenTelnet的工具)。这时就拿到设备系统的Shell权限了。
    • SSH:开放这个端口的设备比较少,可能是因为ssh占用资源比Telnet要多吧,功能都差不多,都是提供一个远程的终端,可以运行一些命令。
以上内容为本人研究智能硬件设备时得到的经验,有些可能有所偏差,如果错误,请指正。

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

最后于 2018-6-10 15:08 被bxc编辑 ,原因:
收藏
点赞0
打赏
分享
最新回复 (16)
雪    币: 1819
活跃值: 活跃值 (5126)
能力值: (RANK:350 )
在线值:
发帖
回帖
粉丝
kanxue 活跃值 8 2018-6-10 15:42
2
0
感谢分享!
雪    币: 3764
活跃值: 活跃值 (1524)
能力值: (RANK:200 )
在线值:
发帖
回帖
粉丝
roysue 活跃值 3 2018-6-10 18:26
3
0
Nice  Work!
雪    币: 211
活跃值: 活跃值 (381)
能力值: ( LV13,RANK:405 )
在线值:
发帖
回帖
粉丝
sudozhange 活跃值 5 2018-6-10 19:51
4
0
mark
雪    币: 260
活跃值: 活跃值 (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
装睡的稻草人 活跃值 2018-6-10 19:54
5
0
mark,thanks
雪    币: 51
活跃值: 活跃值 (114)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
金奔腾 活跃值 2018-6-11 08:42
6
0
mark
雪    币: 1684
活跃值: 活跃值 (101)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
黯夏子风 活跃值 3 2018-6-11 09:06
7
0
感谢分享
雪    币: 1316
活跃值: 活跃值 (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
开花的水管 活跃值 2018-6-11 09:50
8
0
666  感谢楼主分享!
雪    币: 6817
活跃值: 活跃值 (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
聖blue 活跃值 2018-6-11 23:14
9
0
雪    币: 206
活跃值: 活跃值 (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
张three 活跃值 2018-7-3 18:16
10
0
楼主,我在调试一块板子上的TTL串口,用万用表测试的时候很久才会有一个电压波动,用xshell连接到电脑上之后一直显示connectd,但是没有任何交互。这个串口会不会没有数据传输啊
雪    币: 206
活跃值: 活跃值 (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
张three 活跃值 2018-7-3 20:48
11
0
OK了,问题已经解决了(*^_^*)
雪    币: 3471
活跃值: 活跃值 (419)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
smartdon 活跃值 1 2018-7-4 15:14
12
0
感谢分享
雪    币: 4630
活跃值: 活跃值 (322)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fmam 活跃值 2018-7-4 17:27
13
0
感谢楼主分享
雪    币: 8729
活跃值: 活跃值 (848)
能力值: ( LV12,RANK:340 )
在线值:
发帖
回帖
粉丝
bxc 活跃值 6 2018-7-6 13:30
14
0
张three 楼主,我在调试一块板子上的TTL串口,用万用表测试的时候很久才会有一个电压波动,用xshell连接到电脑上之后一直显示connectd,但是没有任何交互。这个串口会不会没有数据传输啊
有没有TTL信号得用逻辑分析仪,万用表那个测不出来的。。
雪    币: 206
活跃值: 活跃值 (51)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
张three 活跃值 2018-7-12 11:45
15
0
买。。。买不起
雪    币: 73
活跃值: 活跃值 (290)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Krypt0n 活跃值 2021-3-9 07:43
16
0
不错
雪    币: 2963
活跃值: 活跃值 (454)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
dabang 活跃值 2021-3-9 09:39
17
0
张three 买。。。买不起[em_39]
逻辑分析仪某宝上面几十一个的就能简单用
游客
登录 | 注册 方可回帖
返回