欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5059|回復: 13
收起左側

STM32單片機利用唯一ID加密代碼的量產方案思路

  [復制鏈接]
ID:997026 發表于 2023-6-6 19:57 | 顯示全部樓層 |閱讀模式
大家好,

看到網上很多利用唯一ID加密代碼的方案,大部分都是要先知道芯片的ID,然后在代碼中與讀出的ID對比,如果一致就往下執行,不一致則不執行。
如果是單個芯片自己玩玩還可以,如果涉及到大批量量產,比如有1萬片需要生產,我不可能提前去讀出每一片的ID吧,工作量太大了。

有沒有一種方法,可以通過軟件實現,量產時直接燒錄代碼就行了,然后由代碼去自動完成內部ID的讀取和比對,并且可以實現被人復制代碼到其他芯片上無法使用的方案?

希望大神提供思路。

提前感謝
回復

使用道具 舉報

ID:879348 發表于 2023-6-7 09:39 | 顯示全部樓層
在燒錄文件中沒有使用的區域加入一個密碼,第一次開機讀取正確密碼,讀取ID重新加密數組保存,然后清除密碼以后只能讀ID和加密數組對比,不正確就不執行,不要直接用ID比對,不加密作用不大
回復

使用道具 舉報

ID:123289 發表于 2023-6-7 10:50 | 顯示全部樓層
將合法的ID做個結合A,將結合告知STM32單片機。這是唯一的方式!
你只能在【A如何做?如何告知于STM32單片機】上想辦法。不要有其它幻想,不會出奇跡的。
通常的做法,不用ID碼!改用EPC碼!
道理很簡單,ID不可改動,也即A是既定的,STM32沒有機動權!
而EPC是可能改動的,只要EPC碼符合某種約定就可以達成樓主的目的。至于如何約定涉及機密,需要技術咨詢。
回復

使用道具 舉報

ID:68189 發表于 2023-6-7 10:59 | 顯示全部樓層
wufa1986 發表于 2023-6-7 09:39
在燒錄文件中沒有使用的區域加入一個密碼,第一次開機讀取正確密碼,讀取ID重新加密數組保存,然后清除密碼 ...

這個燒錄文件,,,隨便用,,,,沒有意義。
回復

使用道具 舉報

ID:1082543 發表于 2023-6-7 11:35 | 顯示全部樓層
wpppmlah 發表于 2023-6-7 10:59
這個燒錄文件,,,隨便用,,,,沒有意義。

那這一段可以留著它,還是去掉啊哥
回復

使用道具 舉報

ID:68189 發表于 2023-6-7 13:42 | 顯示全部樓層
燒錄器讀取芯片ID,計算出密碼,存儲到固件一個特定的區。再燒錄。這樣燒錄器是關鍵。。。有這樣的燒錄器嗎,肯定有的。
回復

使用道具 舉報

ID:883242 發表于 2023-6-7 23:08 | 顯示全部樓層
如果你能控制燒錄時代碼不會被泄露,那么沙發的辦法是最理想的。
回復

使用道具 舉報

ID:879348 發表于 2023-6-8 08:19 | 顯示全部樓層
wpppmlah 發表于 2023-6-7 10:59
這個燒錄文件,,,隨便用,,,,沒有意義。

那你想燒錄的人都沒權限,那只能從其他方面下手了,反正道理都是一樣的,就是要有一個步驟激活讀取ID的程序,這個東西可以在燒錄時加入標記,可以按鍵輸入密碼,可以U盤激活,可以無線激活,甚至聯網激活,這些原理都是一樣的
回復

使用道具 舉報

ID:962286 發表于 2023-6-8 10:07 | 顯示全部樓層
成熟的批量燒錄器是有UID加密功能的。通常它要填這幾個參數:
1. 存放加密值地址,暫時把這個地址叫做Addr;
2. 加密的一個系數,暫時把它叫做Val;
3. UID的排列號。通常UID是12個字節,將這個原生的12個字節進行打亂,得到一個新的d_UID;
4. 公式號,燒錄器提供有幾百種公式。它就是將:Val,d_UID(UID經過自定義打亂)帶入然后算出加密值X,最后燒錄器再Addr;

程序的操作:
1. 讀出UID,按照自己的定義打亂UID,得到d_UID;
2. 自己定義一個常數Val;
3. 選一個燒錄器廠家提供的公式(要記住公式號),然后將d_UID和Val帶入,得出加密值Y;
4. 讀取燒錄器設置的存加密值X的地址Addr的值,對比加密值X和自己算出來的加密值Y是否相等,如果相等,就執行程序,如果不相等就直接while(1);

這種加密方式要破解,太難還是挺大的。
回復

使用道具 舉報

ID:962286 發表于 2023-6-8 10:12 | 顯示全部樓層
wpppmlah 發表于 2023-6-7 13:42
燒錄器讀取芯片ID,計算出密碼,存儲到固件一個特定的區。再燒錄。這樣燒錄器是關鍵。。。有這樣的燒錄器嗎 ...

你說的就是正解!有這個功能的燒錄器。
回復

使用道具 舉報

ID:74687 發表于 2023-12-15 10:09 | 顯示全部樓層
一種思路,定義個static const 變量,比如值為0xffeeaaCC,燒錄后第一次運行,初始化的時候進行這個值的判斷,如果是這個值,那么讀取芯片ID并加密,通過修改flash區域將這個值改為ID加密后的數據。

后面運行的時候,初始化的時候對這個值進行判斷,是否是芯片ID加密后的數據,如果不是清空FLASH區域,或者進行其他操作。
回復

使用道具 舉報

ID:883242 發表于 2023-12-15 14:17 | 顯示全部樓層
MCU_FANS 發表于 2023-6-8 10:07
成熟的批量燒錄器是有UID加密功能的。通常它要填這幾個參數:
1. 存放加密值地址,暫時把這個地址叫做Addr ...

你這辦法跟沙發的說法沒有任何不同之處。關鍵是燒錄器無法讀UID并修改燒寫文件那么只能用沙發的辦法。
回復

使用道具 舉報

ID:382632 發表于 2024-2-16 18:11 | 顯示全部樓層
請問你后面怎么做到
回復

使用道具 舉報

ID:1093268 發表于 2024-2-18 16:07 | 顯示全部樓層
Hephaestus 發表于 2023-12-15 14:17
你這辦法跟沙發的說法沒有任何不同之處。關鍵是燒錄器無法讀UID并修改燒寫文件那么只能用沙發的辦法。

比如創芯工坊、軒微這種專門做第三方燒錄器的,都有這個功能,用了好多年了。
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表