現(xiàn)在一些類型的單片機(jī),從幾百塊錢到幾萬(wàn)塊錢,也有人可以做破解,為了防止大家的產(chǎn)品被剽竊,那今天我給大家簡(jiǎn)單介紹一種當(dāng)前比較流行的常用加密手段。
這種加密手段其實(shí)原理很簡(jiǎn)單,現(xiàn)在是單片機(jī)的主流加密手段,還有尤其fpga這種內(nèi)部不帶程序存儲(chǔ)空間的器件,更是比較多的利用這種加密手段,就是唯一id。那我們現(xiàn)在手上的銀行卡芯片卡,就是用的這種加密手段,這也是為什么
這個(gè)唯一id的意思就是,每顆芯片出廠的時(shí)候,都帶了一個(gè)號(hào)碼,這個(gè)號(hào)碼是唯一不重復(fù)的,和我們每個(gè)人的身份證號(hào)碼一樣,現(xiàn)在剛出生的嬰兒,辦理出生證的時(shí)候就給他一個(gè)身份證號(hào),那么每個(gè)芯片一生產(chǎn)出來(lái),也就具備了這個(gè)身份證號(hào)。那有了這個(gè)身份證號(hào)可以做什么呢?、
我們可以在單片機(jī)的外設(shè)上添加一個(gè)eerpom存儲(chǔ)器(或者有的單片機(jī)內(nèi)部有),然后我們自己組織一種特殊的算法,利用這個(gè)唯一id,產(chǎn)生一組數(shù)據(jù),每生產(chǎn)一個(gè)產(chǎn)品,我們預(yù)先存儲(chǔ)在我們的eeprom內(nèi)這樣一個(gè)數(shù)據(jù),當(dāng)然,燒寫這個(gè)數(shù)據(jù)我們也可以用軟件程序來(lái)實(shí)現(xiàn)的。我們的單片機(jī)上電程序初始化的時(shí)候,會(huì)來(lái)讀一下eeprom內(nèi)部這個(gè)數(shù)據(jù)x,然后用自身內(nèi)部的id加這個(gè)算法運(yùn)算一下一個(gè)值y,然后比較x和y是否一致,如果一致就繼續(xù)工作,如果不一致就停止工作。
舉個(gè)例子,如果我們這個(gè)芯片內(nèi)部的id是147258369這9位數(shù)字,那么我們的算法就是每一位數(shù)字乘以2加1,進(jìn)位部分直接舍掉,那形成的數(shù)字就是:395517739。我們只需要把395517739這個(gè)數(shù)字預(yù)先燒寫到我們的eeprom內(nèi)部,然后我們編寫功能程序的時(shí)候,在初始化部分,會(huì)上電讀一下eeprom的這個(gè)數(shù)字,讀出來(lái)x是395517739,然后再讀一下我們的這個(gè)芯片的唯一id是147258369,用我們的算法計(jì)算一下這個(gè)結(jié)果y是395517739,比較兩者相等,則程序繼續(xù)執(zhí)行,兩者不相等則不工作。
一、芯片破解者,只能把芯片的二進(jìn)制碼讀出來(lái),源程序他是改不了的,所以他只能復(fù)制程序,并不能隨便更改程序。
二、每個(gè)產(chǎn)品上的主單片機(jī)的唯一id,都會(huì)預(yù)先和自己產(chǎn)品的eeprom內(nèi)部的數(shù)據(jù)做比較,即使他們復(fù)制了這個(gè)eerpom的數(shù)據(jù),那他們只要換了其他一顆單片機(jī),還是依然無(wú)法運(yùn)行。
現(xiàn)在公眾號(hào)還不具備留言功能,大概一個(gè)月左右可以具備這個(gè)功能,具備這個(gè)功能后,大家可以留言提出你的疑問(wèn),我盡量給大家解惑。