【丁丁歷險記】Arduino IDE編譯ESP8266/ESP32代碼加密


  • 本節主要講解如何將ArduinoIDE寫成的代碼進行加密,公開不可編輯的二進制文件。可以用於燒寫到硬件但是不可以進行修改。
  • 加密的思路主要是通過Arduino IDE的編譯原理,定位緩存文件,再利用工具進行緩存文件的燒寫。

一、查找編譯生成的緩存文件

  • 因爲整個【丁丁歷險記】提供的都是與ESP8266/ESP32的開發技巧,因此本文的上傳工具爲esptool其他芯片請自行尋找。
  • 因爲arduino IDE有一個友好的燒寫環境只需要選擇好芯片的參數然後點擊上傳即可完成芯片的燒寫十分方便。而arduino IDE內部往往是通過C++進行編寫的,所以編譯原理往往是大同小異的。都是通過gcc或者g++來進行c文件的編譯。軟件會通過自身的庫管理系統定位到所引用的頭文件,以及工程默認引入的頭文件。
  • 在 文件->首選項 中將 顯示詳細輸出的兩個方框勾選。再次編譯的時候你可以找到所有的編譯信息,以及編譯指令。
  • 在輸出的細節中可以看到最後在進行燒寫的時候執行了一行與esptool相關的指令

 (注:這條消息非常明顯,因爲上面都是白色的下面都是紅色的。)

  • 這條消息中涵蓋了芯片的型號,內存,燒寫數據位置到內存等信息。如果你看過樂心給的燒寫工具可以發現這四個文件對應的就是燒寫的四個二進制文件。而四個文件中就包含了所有的下載數據。

二、二進制文件燒寫

  1. 上一部分的指令中所提到的四個bin文件整理出來,並記錄其中需要下載的內存地址。
  2. 其中兩個文件包含了boot參數以及芯片相關的引導參數,後兩個文件主要是編譯工程生成的與程序相關的數據。
  3. 再次燒寫時,只需要使用pip 安裝esptool 使用和arduino IDE中的相同命令即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章