0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

嵌入式開發(fā),如何防止設(shè)備被抄襲?

Dp1040 ? 來源:liwen01 ? 2023-08-31 16:50 ? 次閱讀

前言:

在國內(nèi)做產(chǎn)品設(shè)計(jì)開發(fā),很難避免不被抄襲,被仿照。在沒有形成技術(shù)壁壘之前,如何防止產(chǎn)品被抄襲是一個(gè)不可回避的問題。

一、常規(guī)設(shè)備

常規(guī)設(shè)備主要的防護(hù)手段有:

  • 專利保護(hù)

  • 加密保護(hù)代碼

  • 授權(quán)校驗(yàn)

  • 持續(xù)更新和改進(jìn)

1、專利保護(hù)

對(duì)于一些比較重要的技術(shù)發(fā)明或是創(chuàng)新,應(yīng)該盡快申請(qǐng)專利。雖然目前國內(nèi)對(duì)于知識(shí)產(chǎn)權(quán)保護(hù)的力度有限,但申請(qǐng)專利還是有用的,至少可以避免專利被別人提前申請(qǐng),導(dǎo)致自己侵權(quán)。

2、加密保護(hù)代碼

這里會(huì)涉及到加密與性能和成本的平衡,如果對(duì)設(shè)備成本不是很敏感,可以添加加密芯片;如果是要對(duì)程序進(jìn)行加密,這可能會(huì)影響程序的執(zhí)行效率。

3、授權(quán)校驗(yàn)

在產(chǎn)品中引入授權(quán)驗(yàn)證機(jī)制,例如使用加密密鑰或者授權(quán)證書,以驗(yàn)證產(chǎn)品的合法性。這可以有效防止未經(jīng)授權(quán)的復(fù)制和使用。

4、持續(xù)更新和改進(jìn)

及時(shí)修復(fù)軟件中的漏洞和缺陷,持續(xù)進(jìn)行功能改進(jìn)和升級(jí)。這樣可以讓產(chǎn)品保持競(jìng)爭(zhēng)優(yōu)勢(shì),并減少被抄襲的動(dòng)力。

二、嵌入式設(shè)備

對(duì)于嵌入式設(shè)備而言,主要涉及到結(jié)構(gòu)外觀,硬件電路,嵌入式軟件。除上面介紹的方法,還可以有下面幾種方式,可以增加被抄襲的難度。

  • 打磨關(guān)鍵芯片LOGO

  • 關(guān)閉調(diào)試串口

  • flash 設(shè)置讀保護(hù)

  • 對(duì)關(guān)鍵信息進(jìn)行加密和混淆

1、打磨關(guān)鍵芯片LOGO

嵌入式系統(tǒng)中,不同的處理器,使用不同的交叉編譯工具,程序分區(qū)布局情況也不一樣,可以增加逆向工程分析難度。

2、關(guān)閉調(diào)試串口

正常產(chǎn)品,在量產(chǎn)的時(shí)候都應(yīng)該關(guān)閉調(diào)試串口,有兩個(gè)目的:

  • 一是,避免調(diào)試串口有信號(hào)干擾,影響系統(tǒng)穩(wěn)定性;

  • 二是,調(diào)試串口一般都會(huì)把程序的一些調(diào)試和系統(tǒng)信息打印出來,別人可以從這些信息入手進(jìn)行逆向分析。

3、flash設(shè)置讀保護(hù)

有一些MCU,在它的燒錄器中是可以設(shè)置讀保護(hù)的,也就是使用工具無法直接讀取MCU里面的程序。

常規(guī)的flash也有保護(hù)機(jī)制,但保護(hù)等級(jí)很弱,可以增加加密芯片的方式來避免程序被直接拷貝,但會(huì)影響程序的效率以及增加設(shè)備成本。

4、對(duì)關(guān)鍵信息進(jìn)行加密和混淆

在嵌入式系統(tǒng)中,受限于flash容量大小影響,一般都會(huì)對(duì)執(zhí)行程序進(jìn)行格式轉(zhuǎn)換,再壓縮。運(yùn)行的時(shí)候,先解壓,再進(jìn)行格式轉(zhuǎn)換,最后再運(yùn)行。

在這里可以增加一個(gè)步驟,就是加密和混淆,先對(duì)關(guān)鍵信息進(jìn)行加密,然后再轉(zhuǎn)換,之后再壓縮,這樣可以大大增加逆向分析的難度。

三、君正T系列程序破解

下面以君正廣發(fā)的方案進(jìn)行分析:

君正的執(zhí)行程序是放置在根文件系統(tǒng)上,根文件系統(tǒng)掛載上之后,先進(jìn)行一些初始化設(shè)置,然后就直接運(yùn)行在根文件系統(tǒng)的執(zhí)行程序。

拿到一個(gè)君正T系列官方的固件,如果要進(jìn)行破解,基本的流程應(yīng)該如下:

  • 找到根文件系統(tǒng)的位置

  • 解壓根文件系統(tǒng)

  • 恢復(fù)文件系統(tǒng)格式

  • 找到可執(zhí)行程序

  • 對(duì)可執(zhí)行程序進(jìn)行反編譯等操作

1、找到根文件系統(tǒng)的位置

這里涉及到根文件系統(tǒng)的起始位置和大小。

一般而言,根文件系統(tǒng)會(huì)是在一個(gè)獨(dú)立的分區(qū),而分區(qū)信息是可以在boot的參數(shù)中去獲取,同時(shí)可以獲取到根文件系統(tǒng)的類型等信息。

對(duì)于君正官方的固件,可以在boot中找到bootargs,bootcmd等信息:

68c04e76-47c1-11ee-97a6-92fbcf53809c.png

通過上面可以知道,rootfs的大小為6048K,起始位置為5728K = 0X598000。

6902b7b6-47c1-11ee-97a6-92fbcf53809c.png

2、解壓和恢復(fù)根文件系統(tǒng)

官方打包的操作方法是:


		

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命令將當(dāng)前文件及其子文件打包成rootfs_camera.cpio文件,使用的是newc文件格式。

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

它是使用lzop命令,將rootfs_camera.cpio壓縮成rootfs_camera.cpio.lzo文件。

如果要逆向操作,可以執(zhí)行下面命令:


		

lzop -d rootfs_camera.cpio.lzo cpio -i < rootfs_camera.cpio

lzop -d rootfs_camera.cpio.lzo

rootfs_camera.cpio.lzo文件解壓到當(dāng)前目錄:

cpio -i < rootfs_camera.cpio

rootfs_camera.cpio文件中的內(nèi)容將被解包并恢復(fù)為原始的文件和目錄結(jié)構(gòu),這些文件和目錄將出現(xiàn)在當(dāng)前工作目錄中。

通過etc/init.d/rcS文件可以找到有啟動(dòng)哪些程序,對(duì)應(yīng)程序放置在什么位置,最后可以通過反匯編等信息得到想要的信息。

四、如何防止被逆向破解?

通過上面對(duì)君正官方的設(shè)計(jì)分析,對(duì)于內(nèi)行的專業(yè)工程師,還是比較容易被破解。那可以通過什么手段增加被破解的難度呢?

1、對(duì)整個(gè)根文件系統(tǒng)進(jìn)行加密

加密分為對(duì)稱加密和非對(duì)稱加密,在嵌入式系統(tǒng)中,比較推薦使用對(duì)稱加密的算法,比如AES算法。

編譯打包過程:

  • 選擇AES密鑰長度

  • 生成密鑰

  • 使用密鑰對(duì)文件進(jìn)行加密

  • 將加密的rootfs_camera.cpio.lzo打包到固件包里

設(shè)備運(yùn)行流程:

  • kernel 在啟動(dòng)過程中,會(huì)將根文件系統(tǒng)拷貝到內(nèi)存中,然后再進(jìn)行解壓

  • 在解壓之前,使用打包時(shí)的密鑰進(jìn)行解密,之后再按原來流程繼續(xù)執(zhí)行。

優(yōu)缺點(diǎn)對(duì)比:

  • 優(yōu)點(diǎn)是可以對(duì)整個(gè)文件系統(tǒng)進(jìn)行加密,破解的難度會(huì)比較高;

  • 缺點(diǎn)是會(huì)影響啟動(dòng)速度,如果對(duì)于快速啟動(dòng)系統(tǒng),這種方式會(huì)有影響。

2、只對(duì)關(guān)鍵信息加密

對(duì)嵌入式系統(tǒng)而言,關(guān)鍵信息可以是:

  • 某些關(guān)鍵算法庫

  • 產(chǎn)品序列號(hào)等信息

  • 算法模型文件等

加密和解密方式與上面根文件系統(tǒng)加密方式一樣,區(qū)別是在系統(tǒng)運(yùn)行的不同階段進(jìn)行解密操作。

  • 優(yōu)點(diǎn)是不會(huì)影響系統(tǒng)的啟動(dòng)速遞;

  • 缺點(diǎn)是相對(duì)來說,比較容易被逆向分析。

結(jié)語:

所有的加密都有被破解的可能,實(shí)際設(shè)計(jì)產(chǎn)品應(yīng)根據(jù)產(chǎn)品行業(yè)安全等級(jí)去設(shè)計(jì)不同等級(jí)的加密。不提倡大家去抄襲破解別人的設(shè)備,但也應(yīng)合理地保護(hù)好自己的知識(shí)產(chǎn)權(quán)。

持續(xù)更新和改進(jìn)自己的產(chǎn)品設(shè)計(jì)方案,讓自己的產(chǎn)品和方案形成技術(shù)壁壘,這就不會(huì)過度的擔(dān)心自己產(chǎn)品被抄襲了。


聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 嵌入式
    +關(guān)注

    關(guān)注

    5060

    文章

    18975

    瀏覽量

    302093
  • FlaSh
    +關(guān)注

    關(guān)注

    10

    文章

    1614

    瀏覽量

    147659
  • 嵌入式開發(fā)
    +關(guān)注

    關(guān)注

    18

    文章

    1018

    瀏覽量

    47473
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4723

    瀏覽量

    68238

原文標(biāo)題:嵌入式開發(fā),如何防止設(shè)備被抄襲?

文章出處:【微信號(hào):玩點(diǎn)嵌入式,微信公眾號(hào):玩點(diǎn)嵌入式】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    嵌入式開發(fā)圣經(jīng)

    嵌入式系統(tǒng)開發(fā)圣經(jīng):嵌入式開發(fā)圣經(jīng)
    發(fā)表于 03-25 13:08 ?88次下載

    基于ARM的嵌入式開發(fā)

    基于ARM的嵌入式開發(fā):華清遠(yuǎn)見/孫天澤基于ARM的嵌入式開發(fā)內(nèi)容有:ARM簡(jiǎn)介,基于ARM的嵌入式產(chǎn)品,ARM架構(gòu),基于ARM的嵌入式開發(fā)
    發(fā)表于 10-04 08:49 ?83次下載

    嵌入式開發(fā)

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),嵌入式Linux是以Linux為基礎(chǔ)的嵌入式作業(yè)系統(tǒng)。這里提供了
    發(fā)表于 12-20 13:21
    <b class='flag-5'>嵌入式開發(fā)</b>

    學(xué)嵌入式開發(fā)入門_學(xué)嵌入式開發(fā)需要看哪些書籍

    現(xiàn)在嵌入式開發(fā)越來越吃香,很多人都想要學(xué)習(xí)卻不知道要從何下手。本文分析了學(xué)習(xí)嵌入式軟件開發(fā)需要具備哪些基本知識(shí)和技能,開發(fā)學(xué)習(xí)的基本步驟,并給出了各種參考資料及網(wǎng)站,同時(shí)小編還推薦了學(xué)
    的頭像 發(fā)表于 04-04 10:25 ?2.4w次閱讀

    嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么

    本文首先來了解一下嵌入式前景及薪資待遇,其次解答了嵌入式開發(fā)好學(xué)不好學(xué)的問題,最后闡述了嵌入式開發(fā)必會(huì)知識(shí)以及嵌入式開發(fā)職業(yè)的四大發(fā)展方向,具體的跟隨小編一起來了解一下。
    的頭像 發(fā)表于 05-18 16:41 ?9096次閱讀

    嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程

    本文主要闡述了嵌入式開發(fā)的產(chǎn)品,其次介紹了嵌入式開發(fā)的流程。
    發(fā)表于 08-31 15:38 ?1.1w次閱讀

    嵌入式開發(fā)(一):嵌入式開發(fā)新手入門

    本篇文章整理下嵌入式開發(fā)中一些入門的基礎(chǔ)技能,都是根據(jù)以往的工程經(jīng)驗(yàn)整理,適用于之前沒做過嵌入式開發(fā)的新手。嵌入式開發(fā)流程一般如下,一般是在PC機(jī)的Windows系統(tǒng)下安裝Ubuntu虛擬機(jī),搭建
    發(fā)表于 10-14 10:58 ?79次下載
    <b class='flag-5'>嵌入式開發(fā)</b>(一):<b class='flag-5'>嵌入式開發(fā)</b>新手入門

    嵌入式開發(fā)資料免費(fèi)分享

    嵌入式開發(fā)資料免費(fèi)分享嵌入式工程師經(jīng)驗(yàn)分享:如何學(xué)習(xí)嵌入式開發(fā)截取文檔部分學(xué)習(xí)嵌入式工程師經(jīng)驗(yàn)分享的資料分享給大家,文檔上從、嵌入式系統(tǒng)的概
    發(fā)表于 10-21 11:07 ?46次下載
    <b class='flag-5'>嵌入式開發(fā)</b>資料免費(fèi)分享

    嵌入式開發(fā)Linux入門

    調(diào)試器嵌入式開發(fā)的流程步驟1:開發(fā)引導(dǎo)加載程序步驟2:內(nèi)核實(shí)現(xiàn)步驟3:創(chuàng)建模塊(設(shè)備驅(qū)動(dòng)程序)步驟4:創(chuàng)建應(yīng)用程序步驟5(最后一步):系統(tǒng)調(diào)整結(jié)束語導(dǎo)語近年來,“嵌入式
    發(fā)表于 11-02 14:36 ?31次下載
    <b class='flag-5'>嵌入式開發(fā)</b>Linux入門

    python做嵌入式開發(fā)_Python和嵌入式的區(qū)別是什么?可以做嵌入式開發(fā)嗎?

    從概念上來說,嵌入式和Python的區(qū)別還是比較明顯的,嵌入式是一個(gè)開發(fā)領(lǐng)域,而Python則是一門編程語言。下面就來和大家說一說嵌入式和Python這兩個(gè)之間的區(qū)別。
    發(fā)表于 11-02 20:21 ?14次下載
    python做<b class='flag-5'>嵌入式開發(fā)</b>_Python和<b class='flag-5'>嵌入式</b>的區(qū)別是什么?可以做<b class='flag-5'>嵌入式開發(fā)</b>嗎?

    嵌入式開發(fā)培訓(xùn)學(xué)什么?嵌入式開發(fā)板知識(shí)講解

    嵌入式開發(fā)就是指在嵌入式操作系統(tǒng)下進(jìn)行開發(fā),一般常用的系統(tǒng)有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或匯編開發(fā);用高級(jí)處理器,arm7,a
    發(fā)表于 11-02 20:21 ?16次下載
    <b class='flag-5'>嵌入式開發(fā)</b>培訓(xùn)學(xué)什么?<b class='flag-5'>嵌入式開發(fā)</b>板知識(shí)講解

    嵌入式開發(fā) ---必看圖書

    1.《linux驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)開發(fā)詳解》 基于linux4.0 是目前主流的 嵌入式開發(fā)用的系統(tǒng) 整個(gè)開發(fā)流程很詳細(xì),是嵌入式開發(fā)的入門之選,
    發(fā)表于 11-03 13:06 ?12次下載
    <b class='flag-5'>嵌入式開發(fā)</b> ---必看圖書

    Linux系統(tǒng)的嵌入式開發(fā)是什么

    嵌入式開發(fā)聽起來很高大上,但其實(shí)它就在我們身邊。   嵌入式開發(fā)是指將操作系統(tǒng)、應(yīng)用程序或數(shù)據(jù)存儲(chǔ)在嵌入式設(shè)備中,如手機(jī)、平板電腦、智能家居等。   隨著物聯(lián)網(wǎng)時(shí)代的到來,
    的頭像 發(fā)表于 10-12 15:40 ?1672次閱讀

    講講嵌入式設(shè)備,如何防止抄襲?

    嵌入式設(shè)備抄襲已是一種普遍現(xiàn)象,特別是在國內(nèi),在沒有形成技術(shù)壁壘之前,如何防止產(chǎn)品
    的頭像 發(fā)表于 10-23 10:48 ?579次閱讀
    講講<b class='flag-5'>嵌入式</b><b class='flag-5'>設(shè)備</b>,如何<b class='flag-5'>防止</b><b class='flag-5'>被</b><b class='flag-5'>抄襲</b>?

    嵌入式開發(fā),如何防止設(shè)備抄襲呢?

    嵌入式開發(fā),如何防止設(shè)備抄襲呢? 嵌入式開發(fā)是指將微型電腦、微處理器、傳感器等硬件
    的頭像 發(fā)表于 10-29 16:33 ?844次閱讀