提取密码 : ****
某宝买的热销网络视频监视器,拆下来看了下主板,有wifi模块和一个SOC SD口。
查看丝柔并没查到CPU信息,
在串口中接入针脚,使用rs232,线连接,不同板子有可能也会使用rs485.
在Windows使用putty串口115200连接
一些启动信息,内核是linux3.18.20
使用的是busbox,没用过这东西不知道
可以看到按crtl+u进入u-boot
help查看uboot支持命令行,
使用sf 命令来读取flash固件信息到内存
从启动信息来看有16MB 的信息,
但是并没有给出固件存储格式
在用sf读取之前得先使用sf probe 0命令才可以读取
sf read 0xa00000000 0x0 0x1000000
在使用putty设置log日志
md 0xa00000000 0x1000000
得到文本日志,,在更改二进制文件时需要考虑大小端问题,
因为我这个arm是小端所以需要,python来更改一下
在linux中跑一下.py 代码如下
#!/usr/bin/env python3
import binascii
hex_file = open('putty.log','r')
bin_file = open('hex2bin.bin','wb')
index=0
while True:
line = hex_file.readline().strip() #delete head and tail spance
if not line:
break
1
2
3
4
5
|
strs
=
line.split(
' '
)
#分割方法,以空格分割整个行
index
=
1
while
index<
5
:
string
=
strs[index]
|
print(strs)
print(string)
print(string[-2:])
print(string[-4:-2])
print(string[-6:-4])
print(string[:-6])
1
2
3
4
5
|
bin_file.write(binascii.a2b_hex(string[
-
2
:]))
bin_file.write(binascii.a2b_hex(string[
-
4
:
-
2
]))
bin_file.write(binascii.a2b_hex(string[
-
6
:
-
4
]))
bin_file.write(binascii.a2b_hex(string[:
-
6
]))
index
+
=
1
|
得到的二进制文本使用binwalk分析一下,binwalk hex2bin.bin
得到结果如下:
文件系统分别是squashfs和 jffs2
使用命令 binwalk -Me hex2bin.bin提取分析文件系统
找几个关键文件信息如/etc/配置信息与启动信息Src启动脚本
其中我在squashfs-root中看到了如下脚本
#!/min/sh
/bin/tar xzf /dav/r2_modules.tgz -C /home/
if [ -e /home/r2_modules ]
then
cd /home/r2_modules
./load3516cv300 -a -sensor jxf22 -osmem 64 -total 128 -offline
cd /dav
fi
#rm -rf /home/r2_modules
看来是海思的一款soc
并且使用readelf查看ko模块信息,是
cpu架构信息,
其中有一个ko模是hi3516_sensor.ko
用IDA反编译看了一下sensor_i2c_read 函数使用i2c_transter来获取传感器信息,
自己在这里编写ko来 HOOK这个函数,或者HOOK IRP也可以获取传感器信息,
,随笔
更多【浅谈网络摄像头分析】相关视频教程:www.yxfzedu.com