你點擊藍字關注,回復“入門資料”獲取單片機入門到高級開掛教程
?開發板帶你入門,我們帶你飛
文 |?無際(微信:2777492857)
全文約1106字,閱讀大約需要?5?分鐘
我碰到過幾個人,都說能不能幫他破解一些程序,就是把別人產品程序讀出來。
我沒干過這種事,一直覺得,難度挺大,感覺還不如按功能山寨一個簡單。
特別是那種帶服務器的物聯網產品,哪怕程序給你讀出來,都沒用。
第一是要破解他們的協議,光這個就搞死人。
第二是要知道他們的服務器IP和端口。
第三是要他們服務器要給你這臺設備授權,這個基本無解。
比如我們無際特訓營的項目6,用的是我們自己研發的服務器。
每個設備,必須要后臺授權,才能使用。


哪怕硬件做到一模一樣,燒錄程序被破解了,沒有云平臺的支持,也白搭,除非云平臺也自己做。
但問題又來了,網關的通訊協議設計也是一個經驗活。
前段時間,我們用涂鴉云的一個WiFi模組,突然停產了,整個產品直接廢了,換WiFi模塊都沒用,別人平臺不給你接入。
去破解,真的還不如自己重新研發一個來得快。
我工作時,就碰到過一次程序加密的需求。
不過,之前的工程師已經做好了。
他們是用類似XZ8802加密芯片干的,不過很多年前了,不知道現在有沒有更好的方案。
雖然這款芯片采用硬件加密的方法,但所有的加密,都需要靠軟件配合,哪怕是用了加密芯片。
XZ8802是通過IIC協議和單片機通訊的。
主要特點和工作原理:
1.客戶自定義密碼:
XZ8802允許用戶設置自定義密碼,這增加了破解的難度。如果芯片被非法取下或破壞,系統將無法正常啟動。
2.固化ID號:
每個XZ8802芯片都有一個針對客戶的固化ID號,這個ID號是不可更改的,可以有效防止芯片被破解或復制。
3.密碼嘗試限制:
設定了密碼嘗試次數的限制,通常最多允許連續8次輸入密碼。如果密碼輸入錯誤達到這個次數,芯片可能會被永久鎖定,無法再次使用。
4.存儲空間:
XZ8802芯片自帶有一定容量的存儲空間,用于存儲加密數據或固件。
所以,有這個芯片做輔助,加密的方式就有很多種,就看算法怎么去設計了。
我的初步思路是,燒錄時,把XZ8802的唯一ID讀出來,寫到單片機Flash里去。
或者把單片機的唯一ID,寫到XZ8802里去。
上電后,只有ID匹配,才能運行程序。
這樣,即便對方讀了程序,芯片ID不對應,程序也執行不了。
在數據通訊時,還可以加一些算法,比如CRC啥的,增加破解難度。
實際去做的時候,還會有很多細節問題,只是大概思路。
還有這種方式,燒錄程序會多一個步驟,增加一顆XZ8802芯片,也大約增加幾毛到1塊錢的成本。
end

下面是更多無際原創的個人成長經歷、行業經驗、技術干貨。
1.電子工程師是怎樣的成長之路?10年5000字總結
2.如何快速看懂別人的代碼和思維
3.單片機開發項目全局變量太多怎么管理?
4.C語言開發單片機為什么大多數都采用全局變量的形式?
5.單片機怎么實現模塊化編程?實用程度讓人發指!
6.c語言回調函數的使用及實際作用詳解
7.手把手教你c語言隊列實現代碼,通俗易懂超詳細!
8.c語言指針用法詳解,通俗易懂超詳細!