![]() |
發布時間: 2019-11-5 08:53
正文摘要:開發人員一般設計軟件加密方法:讀id---復雜算法計算---對比之前存儲的對應數據(與id相關)---判斷芯片是否合法。 由于讀id時很多人直接用id起始地址,例如0x1FFFF7E8,破解的人只要把這個數據改成0x8000020,并且0x ... |
雖然不懂,還是來學習1下 |
實用,樓主辛苦了。 |
三、利用id做軟件加密 1,如果板子上有外部存儲器,可以先編寫一個程序,利用算法把id計算得到一些值存入外部存儲器,然后再燒寫真正的程序,真正的程序去校驗外部存儲器的數據是否合法即可 2,利用板子上按鍵組合,或是上電按住某些鍵,程序在這個時候利用算法把id計算得到一些值存入程序區(stm8為EE區),程序運行時去驗證程序區數據是否正確 3,軒微編程器有軟件加密的功能,編程器會讀芯片id,根據算法直接改寫緩沖區,達到軟件加密的作用 4,讀出的id通過一定算法,例如異或加上一個數,得到的數據存入flash(只運行一次,運行后標志位也存入flash),下次讀到這個標志位,就不運行這個程序。 四、做軟件加密時注意 1,不要在程序中直接出現id地址,例如STM32:1FFFF7E8 1FFFF7EC 1FFFF7F0 STM8: 0x4865~0x4870 2, 利用校驗和或是crc對程序區進行校驗,防止改程序 |
同樣象stm8s103讀id時,就不要出現0x4865~0x4871 |