根據手冊 1.聯盛德微電子固件防拷貝方案 2.WM_W800_固件生成說明 v1.2
我嘗試給固件加密,成功了.基本無感,非常nice
可是由於對openssl 不是很了解.
由於文檔確實只有一句話,公鑰文件的 N 記為:capbu_N.dat ...
capbu_N.dat 是如何產生的
對於tools 的 aft_build_project.sh 參數是否可以更改?
key.txt是否可以更改?
如果更改了兩項任何一項,試了無效,猜測是生成capbu_N.dat 時,已經加入了這些參數,所以修改後,導致不能解密.
生成秘鑰,生成公鑰,公鑰將key.txt加密並且追加到固件,最後將capbu_N.dat追加到固件末尾.
可capbu_N.dat 如何跟 key.txt 與 -k參數關聯的,或者怎麼生成的,希望得到回答.
困擾兩天了.萬分感謝.
固件加密用的是key.txt裡的秘鑰,也就是30~66,這個是需要用戶自己設定的值,改的時候需要改三個地方,1.把key.txt文件裡改了;2.在aft_build_project.sh替換用到的地方;3.在燒錄工具裡的文件夾裡有個AvoidCopyTestCases.xml裡也有用到這個值,需要修改替換掉。
capub_1.pem和capub_1_N.dat這兩個文件是用來加密key.txt的,不需要修改,目前固定使用這組值。
cakey.pem和capub.pem是用來做簽名和解簽名用的,也是需要用戶自己修改的值,直接改這兩個文件的內容就可以,aft_build_project.sh裡不用改,因為是直接引用的文件名。燒錄工具文件夾下的capub.pem需要同步修改。同事,如果燒錄工具文件夾下的文件修改後,需要關閉燒錄工具重新打開。
公鑰可以用SSH的標準工具來產生,基本上在任何一個 linux 系統上,都有這個命令,產生公鑰的命令
ssh_keygen
按提示回答存放路徑,保密密碼(一般不用)就可以生成一對密鑰了,其中 .pub 後綴文件就是公鑰。
操作如圖:
感謝你的回複
確實是不需要更改 capub_1.pem和capub_1_N.dat
用openssl手動生成新的cakey.pem和capub.pem,也可以達到修改的效果.
然後也是你的回複,讓我之前的一個誤區,搞明白了.
-k的參數其實 是key.txt 的16進制數...之前沒想到對應關系.
同時改這兩個參數,也是可以達到修改的效果.
有問題提出來還是挺好的.
謝謝了
-K 參數是30313233343536373839616263646566
key.txt 內容是0123456789abcdef
好像不是對應的ascii啊??
另外, 我手頭的SDK沒有文件: tools/w800/ca/capub_1.pem 和tools/w800/ca/capub_1_N.dat這兩個文件哦,所以加密固件make編譯就報錯了。請問應該如何處理?
@timiil 1.數字0~9對應的ascii碼就是0x30~0x39,a~f對應的ascii碼是0x61~0x66。2、確認下手頭的sdk是不是最新版本,最新版本肯定是有的,可以在官網下載一個。
@timiil http://ask.winnermicro.com/article/75.html
謝謝大佬!我再嘗試