Windows Mobile上的簽名

2021-05-04 08:55:15 字數 1353 閱讀 1556

之前在windows mobile平台上開發的程式都沒有用到過特權api, 一直沒有關心過windows mobile平台上簽名的問題. 但是現在的專案必須要使用特權api, 不簽名就可能無法在使用者的手機上執行(其實並不是執行不起來, 而是那些特權api會呼叫失敗, 這樣就得不到正確的結果, 就像程式有bug一樣, 這比執行不起來更惡劣).

"**簽名將驗證數字內容的**以及自從它簽名後沒有更改過的事實", 這是微軟自己認為的要進行**簽名的目的.我覺得採用簽名確實在一定程度上保障了使用者裝置的安全, 但是這個簽名確實搞得太複雜了點.

微軟的**http://msdn.microsoft.com/zh-cn/library/ms839377.aspx 也把這個問題洋洋灑灑的說了一大通, 看完之後還是迷迷糊糊, 後來問了wosign的客服人員, 再結合symbain上簽名的經驗, 總算有了點頭緒. 先將我自己認為的簽名過程寫下來, 一定有理解不對的地方, 等實際操作簽名之後再來修改.

使用者的裝置(windows mobile裝置)有三種安全策略: (1) 只准許執行簽過名的程式; (2) 准許執行所有程式(包括未簽名), 但是使用特權api的程式不能正常執行; (3) 包括使用了特權api的程式(不管有無簽名)都可以執行. 一般使用者選擇的安全策略是第二種, 這樣既在一定程度上保護了裝置又能執行大部分的應用程式(一般網路上免費的那些應用程式都是沒有簽名的). 如果程式中使用了特權api, 如果不簽名(而且要籤特權的)的話那大部分使用者都使用不了了, 畢竟選擇第三種策略的是少數, 所以必須要簽名.

一旦您已經完成開發並獲得證書,就可以通過 5 個簡單的步驟來建立經過簽名的應用程式:

(1)可以用從乙個 mobile2market 證書**商處購買的證書來對應用程式的可執行元件(.exe 和 .dll)進行簽名。下面是關於如何完成這些的指導。

(2)通過 web 介面將經過簽名的應用程式元件提交給證書**商。聯絡您的證書**商以獲得具體指導。受**信任的證書簽名的乙個或多個檔案將返回給您。

(3)將這些元件構建到安裝包 (.cab) 檔案中, 也就是打包生成.cab檔案.

(4)使用從某個 mobile2market 證書**商處購買的證書對 .cab 檔案進行簽名。本文後面的部分有關於如何這樣做的指導。

(5)通過 web 介面將經過簽名的 .cab 檔案提交給您的證書**商。聯絡您的證書**商以獲得具體指導。經過簽名的 .cab 檔案將返回給您。

(6)然後,可以將該 .cab 檔案安裝在所有基於 windows mobile 的 smartphone 上。該應用程式無需提示即可自己執行。

簽名所使用的工具是 signcode.exe . 微軟的指南中有很詳細的說明.

但是如果申請的是特權簽名, 則要稍稍麻煩些, 你需要將你用到的特權api和修改過的特權登錄檔提交給微軟.

Windows Mobile上的藍芽點對點通訊

實驗室做短距離通訊,藍芽是其中主要技術之一。研究生入學複試的時候,大老闆跟我們說,藍芽的起源和一位彈鋼琴的人有關,因為藍芽用到了跳頻,這個和手指在各個琴鍵之間跳動的現象有一定的聯絡。各學科之間的碰撞,會出現一些奇妙的火花。在 windows mobile 平台上,如何來實現藍芽通訊呢?有好多人已經做...

Windows Mobile上使用鉤子

wince系統對於鉤子技術的支援,顯然不及windows。有一些技術文件乾脆說wince不支援鉤子。其實,不盡然。我們還是可以從coredll.dll中,得到一些有用的介面,來實現攔截一些簡單的鍵盤或滑鼠的動作。還是 最有說服力 define wh journalrecord 0 define wh...

Windows Mobile上使用鉤子

wince系統對於鉤子技術的支援,顯然不及windows。有一些技術文件乾脆說wince不支援鉤子。其實,不盡然。我們還是可以從coredll.dll中,得到一些有用的介面,來實現攔截一些簡單的鍵盤或滑鼠的動作。還是 最有說服力 define wh journalrecord 0 define wh...