windows mobile 6.5.3 繞過簽名的機(jī)制
1、現(xiàn)在還仍在做windows mobile開發(fā)的人幾乎很少了,都轉(zhuǎn)到安卓平臺,所以相關(guān)資料少之又少。
2、關(guān)于特權(quán)API和普通API的說明,網(wǎng)上很多資料,比如http://www.360doc.com/content/06/0118/23/73_60330.shtml 就針對windows mobile特權(quán)API的說明。
3、作為OS開發(fā)者,擁有很多特權(quán),但微軟還是做了限制,比如我們自己生成的根證書,又要什么證書頒發(fā)機(jī)構(gòu)購買證書,完全沒有必要,下面介紹如何通過某些手段將我們自己的根證書加入到系統(tǒng)中去,這樣后面我們自己再用自己的根證書以及其簽名的證書對別的.exe,.dll進(jìn)行簽名,系統(tǒng)就認(rèn)為我們是認(rèn)證過的,就會給予特權(quán)。
4、其實系統(tǒng)根證書的存放目錄是在%WINCEROOT%PUBLICCOMMONOAKFILES目錄下的,名字叫做sysroots.p7b,其實我們雙擊可以打開,會看到里面很多證書,這些證書都是和系統(tǒng)里面的一一對應(yīng)的,我們無法直接將自己的.cer根證書加入到.p7b文件中去的。
5、那怎么辦呢,原理是這樣,我們先把sysroots.p7b中包含的所有證書都導(dǎo)入到我們的電腦,然后再在電腦中添加新的證書,然后再導(dǎo)出成.p7b文件,這樣就把新的證書加
入到.p7b文件中了。我們鼠標(biāo)指向sysroots.p7b之后,點右鍵,安裝證書,按如下步驟:
6、通過以上步驟,我們已經(jīng)將.p7b里面的證書全部導(dǎo)入到計算機(jī)中,然后在計算機(jī)中,我們自己再添加自己新的證書:
在運行中輸入mmc,回車,點文件->“添加或刪除管理單元”->證書,然后找到“受信任的發(fā)布者證書”,所有的剛才導(dǎo)出的證書都在這里面了,然后右鍵點空白區(qū)域, 所有任務(wù)->導(dǎo)入,瀏覽需要加入到系統(tǒng)中的新的.cer證書,添加完畢,然后全選,右鍵導(dǎo)出。
7、由于最原始的sysroots.p7b被微軟打包在MSXIPKernel.cab.pkg文件中(你可以用winrar嘗試打開查看一下,里面全部都是預(yù)編譯好的文件),所以我們不僅要替換系統(tǒng)的sysroots.p7b文件,而且我們要先在release目錄下找到MSXIPKernel.cab.pkg并全部刪掉,再在命令行下執(zhí)行makeimg,這時會重新生成MSXIPKernel.cab.pkg,我們打開新的.pkg文件,就會發(fā)現(xiàn)我們修改過的sysroots.p7b已經(jīng)在里面了,然后為了安全起見,我們在public目錄下搜索MSXIPKernel.cab.pkg,找到之后刪除掉,然后用新生成的pkg替換微軟原始的pkg,至此,根證書添加完畢。
8、后面我們可以使用根證書或者根證書簽名的新證書對應(yīng)用程序或者dll進(jìn)行簽名,就可以獲得系統(tǒng)的特權(quán)API了,可以隨意對系統(tǒng)進(jìn)行修改,沒有任何限制。