stm32jlink 和密碼編譯演算法

來源:互聯網
上載者:User

JLINK管腳在預設情況下,其引腳為調試連接埠,如果需要用其引腳做 GPIO管腳用,必須要設定其映射複用寄存器mapp。

STM32加密之我見

軟體工程師很辛苦。每天加班熬夜,為了一個有創意的演算法茶飯不思。面對當前強盜橫行的世道,如何盡最大努力將你的勞動成果保住? 基本上鎖有單片機都具備了讀保護功能。但是還是很多很多的被解案例。所以單有讀保護看來是不夠的。STM32也難逃這個厄運。曾經看過一篇深圳大學出的文章(作者記不起來了)文章就講到這個。能不能做點手腳,讓被解出來的Flash檔案不能直接在其他片上運行。所幸的是STM32具備了96為的晶片身份號碼.可惜STM8自105以後的產品都沒有了。

就此談談我的思路。其中借鑒了網友關於將Option 設定嵌入晶片的思路。既然可以將Option 設定嵌入一段程式到晶片中,那麼我們就再多做一點。將讀出晶片ID和寫晶片ID也做進去。這樣的話我們就可以在程式初次運行時讓程式自動去讀晶片ID之後再寫入你指定的位置。再做讀防寫保護設定。這個程式只運行一次後將永遠不再運行了。在你的應用程式中每次複位後再運行都做ID確認,不對則進入一個空操作的死迴圈。這樣的話即使程式被人讀出來也不能治接應用了。如果他再做大量的反組譯碼這樣就是間很困難的事了。這樣做基本沒人願意做了。肯定還有更聰明的破解者會想到將你的Flash儲存後再去讀出目標晶片的ID,通過尋找的方式從Flash檔案中找出那段字元來的.這樣你的程式也能被盜用到.誰說他要每個IC手工前進目標IC的ID有點麻煩,但終究還是可以用的.這樣都不行,那還有什麼辦法?把ID拆散成不同組合寫到不同且不連續的地址去.或者再帶上你自己的標識.這樣他還能尋找得到嗎?我覺得這基本不可能了.由於我目前還沒有實際應用STM32做項目,所以也沒有做這個實踐.感情屬紙上談兵.我不是警_察更不是流氓.我很討厭,沒有能力抓流氓,但我總是想儘力制止流氓行為.下面是我思路中的步驟.

1 在主程式的起始位置做程式是否為初次運行檢查,是就進入第2步的程式中。不是初次運行是就做ID校正,通過開始運行程式,不能通過進入空操作死迴圈。

2寫一段程式包含ID讀寫功能函數、Option字設定函數、當然Flash 讀寫函數也是要的。在這個函數中安插一個初次運行標誌。運行完後擦除掉。應用程式以此判斷是否需要執行這段程式。這段程式不要放在別人容易猜測到的位置。

3在應用程式中事先做幾個數組,用於儲存從晶片中都出的ID。這個數組裡事先放一組自訂的字元。在做寫ID時先看看這裡面是不是你安排的字元。不是就不寫ID。

4將你讀出的ID打亂後分成幾組寫入預定好的數組中。

5寫Option字的讀防寫保護及其它相關位。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.