本帖最后由 yun7772 于 2020-9-11 00:08 编辑
手头上有一个智能摄像头(品牌不明),想改造成rtmp的摄像头,经过研究固件发现插入sd卡应该是可以自动运行一个叫manu.sh的脚本,但是需要经过tar压缩和md5验证,在md5这一块就摸不着头脑了,想请问一下给我懂linux openssl命令的,怎么样才能生成可以通过的manu.bin和md5sum.dat?
[Asm] 纯文本查看 复制代码 #!/bin/sh
#must to verify the sdcard
MANUFA="/mnt/sdcard/manu_test"
MANUFA_BIN="/mnt/sdcard/manu_test/manu.bin"
MANUFA_DAT="/mnt/sdcard/manu_test/md5sum.dat"
TMP_BIN="/tmp/manu.bin"
TMP_DAT="/tmp/md5sum.dat"
try_ft_mode()
{
if [ -f "${MANUFA_DAT}" ];
then
rm -rf /tmp/manu_test
rm -fr ${TMP_BIN}
rm -fr ${TMP_DAT}
echo "md5sum.dat"
# openssl smime -decrypt -in "$MANUFA_DAT" -binary -inform DEM -inkey /mnt/data/data/cfg/public-key.pem -out "$MANUFA_BIN"
#openssl rsautl -sign -in "$MANUFA_DAT" -inkey RSA.pem -passin pass:123456 -out "$MANUFA_BIN"
cp ${MANUFA_BIN} /tmp/
cp ${MANUFA_DAT} /tmp/
cd /tmp/
rm -fr md5sum1.txt
openssl rsautl -verify -in "${TMP_DAT}" -inkey /mnt/data/data/cfg/public-key.pem -pubin -out md5sum1.txt
fact_md5=`md5sum -c md5sum1.txt`
if [ "${fact_md5}" = "manu.bin: OK" ] ; then
echo "md5 ok"
rm -fr ${TMP_BIN}
tar -xf "${MANUFA_BIN}" -C /tmp/
cd /tmp/manu_test/
chmod -R 755 *
if [ -f "/tmp/manu_test/manu.sh" ]; then
/tmp/manu_test/manu.sh
return 0
else
return 1
fi
else
echo "md5 fail"
fi
fi
}
通过解包编程器固件已经修改了这段代码,顺便开放了ttl
Tips:这个摄像头其实是米家摄像头 |