首页 > 其他分享 >嵌入式开发,如何防止设备被抄袭?

嵌入式开发,如何防止设备被抄袭?

时间:2023-06-08 22:33:46浏览次数:37  
标签:抄袭 加密 文件系统 cpio 嵌入式 camera 防止 rootfs

前言

在国内做产品设计开发,很难避免被抄袭,被仿照。在没有形成技术壁垒之前,如何防止产品被抄袭是一个不可回避的问题。

(一)常规设备

常规设备主要的防护手段有:

  • 专利保护
  • 加密保护代码
  • 授权校验
  • 持续更新和改进

(1)专利保护

对于一些比较重要的技术发明或是创新,应该尽快申请专利。虽然目前国内对于知识产权保护的力度有限,但申请专利还是有用的,至少可以避免专利被别人提前申请,导致自己侵权。

(2)加密保护代码

这里会涉及到加密与性能和成本的平衡,如果对设备成本不是很敏感,可以添加加密芯片;如果是要对程序进行加密,这可能会影响程序的执行效率。

(3)授权校验

在产品中引入授权验证机制,例如使用加密密钥或者授权证书,以验证产品的合法性。这可以有效防止未经授权的复制和使用。

(4)持续更新和改进

及时修复软件中的漏洞和缺陷,持续进行功能改进和升级。这样可以让产品保持竞争优势,并减少被抄袭的动力。

(二)嵌入式设备

对于嵌入式设备而言,主要涉及到结构外观,硬件电路,嵌入式软件。除上面介绍的方法,还可以有下面几种方式,可以增加被抄袭的难度

  • 打磨关键芯片LOGO
  • 关闭调试串口
  • flash 设置读保护
  • 对关键信息进行加密和混淆

在嵌入式系统中,不同的处理器,使用不同的交叉编译工具,程序分区布局情况也不一样,可以增加逆向工程分析难度

(2)关闭调试串口

正常产品,在量产的时候都应该关闭调试串口,有两个目的:

  • 避免调试串口有信号干扰,影响系统稳定性。
  • 调试串口一般都会把程序的一些调试和系统信息打印出来,别人可以从这些信息入手进行逆向分析。

(3)flash 设置读保护

有一些MCU,在它的烧录器中是可以设置读保护的,也就是使用工具无法直接读取MCU里面的程序。常规的flash也有保护机制,但是保护等级很弱,可以增加加密芯片的方式来避免程序被直接拷贝。但是会影响程序的效率以及增加设备成本。

(4)对关键信息进行加密和混淆

在嵌入式系统中,受限于flash容量大小影响,一般都会对执行程序进行格式转换,再压缩。运行的时候,先解压,再进行格式转换,最后再运行。在这里可以增加一个步骤,就是加密和混淆,先对关键信息进行加密,然后再转换,之后再压缩,这样可以大大增加逆向分析的难度。

(三)君正T系列程序破解

下面以君正广发的方案进行分析: 君正的执行程序是放置在根文件系统上,根文件系统挂载上之后,先进行一些初始化设置,然后就直接运行在根文件系统的执行程序。拿到一个君正T系列官方的固件,如果要进行破解,基本的流程应该如下:

  • 找到根文件系统的位置
  • 解压根文件系统
  • 恢复文件系统格式
  • 找到可执行程序
  • 对可执行程序进行反编译等操作

(1)找到根文件系统的位置

这里涉及到根文件系统的起始位置和大小。一般而言,根文件系统会是在一个独立的分区,而分区信息是可以在boot的参数中去获取,同时可以获取到根文件系统的类型等信息。对于君正官方的固件,可以在boot中找到bootargs,bootcmd等信息: 通过上面可以知道rootfs的大小为6048K,起始位置为5728K = 0X598000

(2)解压和恢复根文件系统

官方打包的操作方法是:

find . | cpio -H newc -o > ../rootfs_camera.cpio

lzop -9 -f rootfs_camera.cpio -o rootfs_camera.cpio.lzo

find . | cpio -H newc -o > ../rootfs_camera.cpio

它是使用 cpio 命令将当前文件及其子文件打包成rootfs_camera.cpio 文件,使用的是newc 文件格式

lzop -9 -f rootfs_camera.cpio -o rootfs_camera.cpio.lzo

它是使用lzop 命令,将rootfs_camera.cpio压缩成rootfs_camera.cpio.lzo 文件

如果要逆向操作,可以执行下面命令:

lzop -d rootfs_camera.cpio.lzo

cpio -i < rootfs_camera.cpio

lzop -d rootfs_camera.cpio.lzo

rootfs_camera.cpio.lzo 文件解压到当前目录

cpio -i < rootfs_camera.cpio

rootfs_camera.cpio 文件中的内容将被解包并恢复为原始的文件和目录结构,这些文件和目录将出现在当前工作目录中。

通过etc/init.d/rcS 文件可以找到有启动哪些程序,对应程序放置在什么位置,最后可以通过反汇编等信息得到想要的信息。

(四)如何防止被逆向破解

通过上面对君正官方的设计分析,对于内行的专业工程师,还是比较容易被破解。那可以通过什么手段增加被破解的难度呢?

1.对整个根文件系统进行加密

加密分为对称加密和非对称加密,在嵌入式系统中,比较推荐使用对称加密的算法,比如AES算法

编译打包过程

  • 选择AES密钥长度
  • 生成密钥
  • 使用密钥对文件进行加密
  • 将加密的rootfs_camera.cpio.lzo 打包到固件包里

设备运行流程

  • kernel 在启动过程中,会将根文件系统拷贝到内存中,然后再进行解压
  • 在解压之前,使用打包时的密钥进行解密,之后再按原来流程继续执行

优缺点

  • 优点是可以对整个文件系统进行加密,破解的难度会比较高
  • 缺点是会影响启动速度,如果对于快速启动系统,这种方式会有影响

2. 只对关键信息加密

对嵌入式系统而言,关键信息可以是:

  • 某些关键算法库
  • 产品序列号等信息
  • 算法模型文件等

加密和解密方式与上面根文件系统加密方式一样,区别是在系统运行的不同阶段进行解密操作

  • 优点是不会影响系统的启动速递
  • 缺点是相对来说,比较容易被逆向分析

结尾

所有的加密都有被破解的可能,实际设计产品应根据产品行业安全等级去设计不同等级的加密。不提倡大家去抄袭破解别人的设备,但也应合理地保护好自己的知识产权。 持续更新和改进自己的产品设计方案,让自己的产品和方案形成技术壁垒,这就不会过度的担心自己产品被抄袭了。

---------------------------End---------------------------
如需获取更多内容
请关注 liwen01 公众号
         

标签:抄袭,加密,文件系统,cpio,嵌入式,camera,防止,rootfs
From: https://www.cnblogs.com/liwen01/p/17466903.html

相关文章

  • 闲来无事-夏天防止花被渴死
    扯淡时间前段时间,办了一张流量卡。有了新的手机号码那就可以薅一波资本主义的羊毛了,所以我在京东上使用0.1大洋包邮的价格喜提了一个多肉,(在此之前我养过挺多的花,所有的都是忘了浇水被渴死了)此次痛并思痛,一定要让我0.1大洋的的多肉看到明年的太阳。思路养花几乎不用管,只需要两......
  • 如何防止服务器被入侵?
    如何防止服务器被入侵?1、定期更换服务器账号、密码和端口,密码应该包含大小写字母、数字和特殊符号。2、服务器定期杀毒、查毒。比如安装电脑管家、360安全卫士等软件防护,更新毒库为最新版本;3、定期备份服务器文件数据。建议将数据备份到云盘或是网盘上,如果你只是备份到服务器某个......
  • DSPC174 3BSE005461R1嵌入式卡件ABB
    DSPC1743BSE005461R1嵌入式卡件ABBDSPC1743BSE005461R1嵌入式卡件ABB 为您的过程选择PLC或控制器非常重要,因为它有助于成本优化。要确定最适合用于自动化任务的PLC,需要考虑几个基本因素:必要的输入/输出能力所需的I/O类型所需内存大小CPU和指令集所需的速度和功率......
  • 嵌入式相关知识点概念笔记
    01操作系统(OperatingSystem,OS)是管理计算机硬件与软件资源的系统软件,同时也是计算机系统的内核与基石。操作系统需要处理管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统也提供一个让用户与系统交互的操作界面。......
  • 维护嵌入式 Linux 内核——So Easy
    Pengutronix内核黑客JanLübbe总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式Linux会议上概述了一个计划,以保持长期设备的安全和功能完整。安全漏洞只发生在Windows上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过......
  • 维护嵌入式 Linux 内核——So Easy
    Pengutronix内核黑客JanLübbe总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式Linux会议上概述了一个计划,以保持长期设备的安全和功能完整。安全漏洞只发生在Windows上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过......
  • 维护嵌入式 Linux 内核——So Easy
    Pengutronix内核黑客JanLübbe总结了嵌入式 Linux 中正在不断增长的安全威胁,并在这次欧洲嵌入式Linux会议上概述了一个计划,以保持长期设备的安全和功能完整。安全漏洞只发生在Windows上的好日子正在快速过去。恶意软件黑客和拒绝服务老手们正在越来越多地瞄准过......
  • 防止Android截屏
    一、背景介绍对于涉及用户个人隐私的应用,比如银行、支付、社交等应用,其界面中可能会涉及到用户的个人信息,比如手机号、身份证号码、交易记录等。如果这些信息被人截屏,就可能会造成用户个人隐私的泄露。另外一方面,一些企业和开发者可能会开发一些自己的知识产权应用,比如游戏、新......
  • SMB 签章可以用于保护 SMB/TCP 协议传输的数据安全性,防止网络中的恶意用户或攻击者篡
    SMB签章可以用于保护SMB/TCP协议传输的数据安全性,防止网络中的恶意用户或攻击者篡改原始数据。要启用SMB签章,可以执行以下批处理脚本:CopyCode@echooffsetlocalrem启用SMB签章echoEnablingSMBsigning...regadd"HKLM\SYSTEM\CurrentControlSet\Services\Lanma......
  • 【嵌入式--伺服电机】直流有刷电机工作原理
    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加TODO:写完再整理文章目录系列文章目录前言1.磁场的产生方法小型的直流有刷电机磁场的产生方法大型的直流有刷电机磁场的产生方法2.电枢绕组及电枢电流定义3.换向器定义4.电枢定义5.有刷直流电机驱动硬......