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

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

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

單片機軟硬件的加密方法

傳感器技術(shù) ? 來源:EDN電子技術(shù)設(shè)計 ? 作者:EDN電子技術(shù)設(shè)計 ? 2020-09-13 10:04 ? 次閱讀

總結(jié)前人的經(jīng)驗,摸索著寫一點實用的方法,供大家參考:在這里不講加密算法,只討論結(jié)合軟硬件的加密方法,總結(jié)了一下大該有以下幾種:

一、加密方法

1、燒斷數(shù)據(jù)總線。這個方法我想應(yīng)不錯,但應(yīng)有損壞的風(fēng)險,聽說也能**。

2、芯片打磨改型,這個方法有一定作用,改了型號能誤導(dǎo),但同時也增加成本,解密者一般也能分析出來。

3、用不合格的單片機的的存儲器:這個方法聽起來不錯,值得一試。很多單片機有這種情況,有的是小容量改為大容量來用,**者應(yīng)很難發(fā)現(xiàn)。例:8031/8052 單片機就是8731/8752掩模產(chǎn)品中的不合格產(chǎn)品,內(nèi)部可能有ROM??砂?031/8052 當(dāng)8751/8752 來用。但使用時要測試可靠。

4、其他還有添加外部硬件電路的加密方法。但那樣增加成本,效果不一定好。

5、軟件加密,是一些防止別人讀懂程序的方法,單一的這種方法不能防止別人全盤復(fù)制。須配合其他的加密方法。

6、通過序列號加密,

這個方法當(dāng)你的產(chǎn)品是連接PC時或網(wǎng)絡(luò),我想是一個比較理想的方法。原理跟電話產(chǎn)品防偽標(biāo)志相近。就是在你的單片機中生成一個唯一的隨機長序列號,并加入復(fù)雜的特種算法,或加入你們重新編碼的企業(yè)信息在里面,每個芯片內(nèi)不同,復(fù)制者只能復(fù)制到一個序列號。這個方法不能防止復(fù)制,但能發(fā)現(xiàn)復(fù)制品,并可在升級或在網(wǎng)絡(luò)狀態(tài)控制它或讓他自毀。如果產(chǎn)品不聯(lián)機或不可升級,則這個方法完全無效,只能是在上法院時可當(dāng)作證據(jù),因為內(nèi)含特種算法破解者是無法知道的。

7、通過單片機唯一的特性標(biāo)識(不可修改)進(jìn)行加密

這個方法最好,能很好的防止復(fù)制。但大多單片機沒有唯一標(biāo)識。STC單片機里面含唯一標(biāo)識,但本人沒用過,下次一定要研究使用一下。理論上只要含唯一標(biāo)識是單片機都可實現(xiàn),ATMEL AVR系列單片大部分型號有RC校正字節(jié)(幾十個芯片才有一個相同,并且不可修改)能實現(xiàn)這個理想功能,可做到即使芯片內(nèi)程序被讀出也無法直接在另一個同型號的單片機上正常運行。并且如果用這個唯一標(biāo)識來生成含有加密算法的序列號,結(jié)合第6種方法,哪應(yīng)是最理想的加密方法。

以上方法應(yīng)都是一種加密的思路,各種方法可接合著用,6、7兩種方法是本人認(rèn)為比較合適,實現(xiàn)起來比較容易的方法。后面將重點介紹兩種加密方式的實現(xiàn)方法。

二、序列號加密實現(xiàn)方法

1、原理

就是在存儲器某個區(qū)塊放入一個唯一的序列號(長一點,無規(guī)律),每個芯片不同。原理跟電話產(chǎn)品防偽標(biāo)志相近

| PC機 | 《------------》| 帶自定義算法序列號單片機系統(tǒng) |

控制方法:

1、PC根據(jù)傳回來的序列號根據(jù)算法判斷是否合法,合法就運行,不合法處理它。當(dāng)然,如果是**的序列號,可自毀。

2、單片機內(nèi)部的序列號經(jīng)加密算法處理,單片機系統(tǒng)同樣要防止軟件被更改,可在單片機內(nèi)部加入CRC等數(shù)據(jù)校驗。一般情況下,序列號如果不合算法,單片機系統(tǒng)應(yīng)讓程序運行出錯,這樣**者一般不會去修改序列號,如果修改了也沒關(guān)系,因為PC還能判斷是否合法。

3、序列號傳送時可采用雙向加密算法認(rèn)證,相當(dāng)于銀卡的數(shù)據(jù)交換方式。

傳送過程:

PC發(fā)送隨機SEED數(shù)據(jù)----》單片機系統(tǒng)跟據(jù)隨機SEED算出加密的序列號-----》PC根據(jù)算法判斷序列號是否合法這樣在序列號的傳送過程中,數(shù)據(jù)每次不同,解密者無法看到序列號的明碼。這樣PC軟件他同樣不容易更改。

注意:加密算法可以很簡單理解一個為異或,當(dāng)然算法由你自已隨意定,反正目的不能上別人一看軟件就懂。**者只是**一個產(chǎn)品只能得到一個序列號,即使序列號是明碼,他也只能知道是一個。如他隨便修改一個序列號一般情況就不符合算法,除非他看懂你的軟件算法,我想這是一般解密者最不愿意做的事情。

單片機系統(tǒng)的量產(chǎn):

產(chǎn)生這樣的序列號,單片機系統(tǒng)如何生成?如果用手工一個個去計算調(diào)入,得重新編譯是不可能的事情。如果編寫一個軟件生成數(shù)據(jù)放入到HEX文件中,那樣不說工作量好大,編程時還必須一次次裝入HEX文件,量產(chǎn)同樣無法完成。這個可于

MiniPro TL866 編程器完成。

編程器的介紹可查看//www.autoelectric.cn/minipro

TL866編程器有個自動編號功能,可利用DLL動態(tài)庫調(diào)用實現(xiàn)任意的序列號。如何使用DLL設(shè)定序列號,可參考編程器安裝包內(nèi)的DLL實例,內(nèi)有詳細(xì)說明。后面講的用單片機唯一的特性標(biāo)識進(jìn)行加密也用到DLL調(diào)用,基本大同小異。

經(jīng)過這樣的加密,達(dá)到一個目的,就是解密者必須修改你的軟件后才能放心使用,但是每次升級同樣會受你控制,好像微軟隨時可以黑你屏一樣的道理,否則可能隨時會被你宰了!!但這種方法只適合連接PC或網(wǎng)絡(luò)的系統(tǒng)。

三、用單片機唯一的特征標(biāo)識進(jìn)行加密

加密原理:

單片機必須有唯一標(biāo)志,單片機程序內(nèi)只要判斷是否是這個標(biāo)志,就可防止程序直接復(fù)制使用。理論上可以做到很難破解,本人認(rèn)為是最有效又實用的方法。

達(dá)到目的:解密者最不愿意做的事讓他必須做。

一般大部分搞單片機解密的都是暴力破解,因為這個最容易,只要牚握技巧,有設(shè)備,工藝熟練就可了,不用太強的專業(yè)知識。如果復(fù)制后,程序無法運行,那就蒙了,因為這個時候就要去看匯編語言了,我想信有很多匯編高手,能很容易**。但我也同時認(rèn)為,怎么多型號的單片機,匯編指令差別好大,每一種單片機的匯編都很熟的人應(yīng)不多了。所以這會大大增加**難度。如果一個加密設(shè)計好的軟件,跟據(jù)單片機的唯一特征字來加密,有時他可能不得不看懂里面的加密算法。這樣加密目的就達(dá)到了。

開發(fā)人員需要做的事:

有了唯一特征字,并不是加密萬無一失了。如果你只是在程序中只用一條語句判斷,是不是這個芯片的特征字,則程序被讀出后,解密者只要簡單的修改程序,直接跳過判斷語句。可能只要幾分鐘就解決了。所以在程序要加入加密算法,盡量不用IF判斷語句??捎米映绦蛘{(diào)用地址來參與特征字的加密運算等等方法,如何防反匯編及修改軟件等不在這里討論,網(wǎng)上可以找到有關(guān)這方面的很多資料。

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

    關(guān)注

    6037

    文章

    44558

    瀏覽量

    635308
  • 加密
    +關(guān)注

    關(guān)注

    0

    文章

    304

    瀏覽量

    23920

原文標(biāo)題:總結(jié)幾種常用的單片機加密方法

文章出處:【微信號:WW_CGQJS,微信公眾號:傳感器技術(shù)】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    STM32單片機到底是如何實現(xiàn)軟硬件結(jié)合?

    本文分析 STM32 單片機到底是如何實現(xiàn)軟硬件結(jié)合的,接著分析單片機程序如何編譯、運行。
    發(fā)表于 05-16 09:54 ?1123次閱讀
    STM32<b class='flag-5'>單片機</b>到底是如何實現(xiàn)<b class='flag-5'>軟硬件</b>結(jié)合?

    單片機到底是如何軟硬件結(jié)合的

    ? 不知道大家有沒有疑惑,為什么軟件能控制硬件?反正當(dāng)年我學(xué)習(xí)51的時候,有這個疑惑。今天我們就暫停軟件開發(fā),分析單片機到底是如何 軟硬件結(jié)合 的。并通過一個基本的程序,分析單片機程序
    的頭像 發(fā)表于 08-08 09:31 ?1349次閱讀
    <b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>軟硬件</b>結(jié)合的

    AVR單片機軟硬件設(shè)計教程入門篇

    AVR單片機軟硬件設(shè)計教程入門篇單片機就是一臺微型電腦。麻雀雖小,五臟俱全,單片機將微型電腦的所有基本部分都集成在一片硅片上。構(gòu)成單片機的基
    發(fā)表于 12-09 15:22

    承接單片機軟硬件開發(fā)

    承接單片機軟硬件方案,主營無線產(chǎn)品開發(fā)(GPRS,315-433M,2.4G發(fā)射接收,WIFI,ZIGBEE,藍(lán)牙),臺燈和吸頂燈燈控,工控,汽車電子,智能家居。可提供硬件設(shè)計和軟件開發(fā)。歡迎大家咨詢,有需要的請聯(lián)系,范先生QQ
    發(fā)表于 09-10 11:55

    承接各種單片機系統(tǒng)的軟硬件開發(fā)項目,以及單片機反匯編項目

    十年以上單片機軟硬件開發(fā)經(jīng)驗,精通C/C++和匯編。熟悉串口,USB,CAN等各種通信技術(shù)。承接各種單片機系統(tǒng)的軟硬件開發(fā)及反匯編項目(深圳和周邊地區(qū)),email:sxtyqx08@
    發(fā)表于 11-28 10:56

    單片機按鍵軟硬件設(shè)計技巧有哪些

    單片機按鍵軟硬件設(shè)計技巧!
    發(fā)表于 04-22 14:37

    單片機測控系統(tǒng)的軟硬件平臺技術(shù)

    本文探討了一種用于工業(yè)測控系統(tǒng)的單片機軟硬件綜合設(shè)計方法——軟硬件平臺技術(shù),重點闡述了其基本原理、設(shè)計思想、實現(xiàn)方法,并給出了一個
    發(fā)表于 08-13 09:38 ?12次下載

    單片機加密方法

    單片機加密方法 單片機加密方法:(1)   科研成果保護是每一個科研人員最關(guān)心的事情,目的不使
    發(fā)表于 05-24 09:28 ?1858次閱讀

    單片機為核心的超聲波潔牙軟硬件設(shè)計方案

         本文探討以單片機為核心的超聲波潔牙軟硬件設(shè)計,該潔牙采用電流取樣反饋自動掃描搜索諧振點,
    發(fā)表于 01-05 15:37 ?1669次閱讀
    以<b class='flag-5'>單片機</b>為核心的超聲波潔牙<b class='flag-5'>機</b><b class='flag-5'>軟硬件</b>設(shè)計方案

    AVR單片機軟硬件學(xué)習(xí)教程

    AVR單片機軟硬件學(xué)習(xí)教程 o第一講:單片機及其開發(fā)工具簡介 o第二講:AVR硬件電路設(shè)計教程 o第三講:AVR開發(fā)環(huán)境的建立,數(shù)字邏輯與C語言程序設(shè)計基礎(chǔ)知識 o第四講:流水燈、蜂鳴
    發(fā)表于 11-30 15:36 ?526次下載
    AVR<b class='flag-5'>單片機</b><b class='flag-5'>軟硬件</b>學(xué)習(xí)教程

    單片機系統(tǒng)軟硬件調(diào)試及維修技術(shù)

    單片機系統(tǒng)軟硬件調(diào)試及維修技術(shù),快來下載吧
    發(fā)表于 09-01 18:17 ?0次下載

    單片機中的軟硬件防干擾方法

    單片機中的軟硬件防干擾方法 1 引言 隨著單片機技術(shù)應(yīng)用發(fā)展,在應(yīng)用過程中,如何防止外界的干擾,確保單片機安全可靠運行,是一個很重要的問題。
    發(fā)表于 11-23 13:34 ?772次閱讀

    AVR單片機十日通:介紹AVR單片機軟硬件配置(1)

    欣世紀(jì)電子阿迪老師單片機系列視頻教程之《AVR單片機十日通》,這是第一日:AVR單片機軟硬件配置入門,配套硬件平臺DMAVR-M16,軟件A
    的頭像 發(fā)表于 07-06 04:03 ?4125次閱讀

    深度:單片機到底是如何軟硬件結(jié)合的?

    分析單片機到底是如何軟硬件結(jié)合的。并通過一個基本的程序,分析單片機程序的編譯,運行。
    發(fā)表于 02-08 16:29 ?2次下載
    深度:<b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>軟硬件</b>結(jié)合的?

    深度:單片機到底是如何軟硬件結(jié)合的?

    本文我們將分析單片機到底是如何軟硬件結(jié)合的,并通過一個基本的程序,分析單片機程序的編譯,運行。
    發(fā)表于 02-08 16:53 ?7次下載
    深度:<b class='flag-5'>單片機</b>到底是如何<b class='flag-5'>軟硬件</b>結(jié)合的?