2007年3月27日 星期二

幫瀏覽器加個危險警示器~McAfee SiteAdvisor

現在逛網頁有多危險?
常聽到有人又在哀號怎麼又被『流氓軟件』給安裝進系統? 怎麼又中網頁木馬?
若能在瀏覽網頁前或當下, 先知道此網頁安不安全, 有無被害人嵌入惡意程式碼? 或網頁中有不安全的下載點? 豈不是心安許多。

你想得到的, 防毒軟體商也都幫你想到了。
來試試國際知名大廠McAfee如何幫你警示網頁是否安全。由於是瀏覽器外掛, 並不會與系統已有的防毒軟體相沖突, 但此軟體只是警示網頁是否安全, 讓你避開, 無解毒功能。你若要仍要開啟網頁, 那就要看你系統中安裝的防毒軟體夠不夠強悍。

當軟體安裝後會在IE右上角出現一個圖示, 一旦變紅色, 表示網頁有不安全的因素, 就要心裏有所準備, 將滑鼠移至變紅色的圖示看是什麼危險因子, 就別再繼續逛了。當使用google等搜尋引擎時, 亦會在每筆搜尋結果旁邊顯示是否為安全, 亦可將游標移至危險連結旁的紅色圖示, 看是什麼原因。



看看官方網頁如何描述此軟體
下載點


相同類型的軟體還有。
Free Dr.WEB link checkers(支援Mozilla\Firefox\Internet Explorer\Opera等不同的版本)
TrendProtect(支援Firefox\IE)

以上軟體都是免費的喔。

2007年3月25日 星期日

MSN外掛~UrMap MSN互動地圖

MSN又有新玩法了。UrMap提供新的MSN互動地圖服務。(Yahoo即時通亦有提供相應版本)

『每次和朋友約地點總是在對話視窗上打了一堆字,卻還說得不清不楚嗎?
UrMap全新推出MSN互動地圖體驗版(P2P),讓溝通更有效率!』

不過此互動地圖需聊天雙方都要安裝此外掛才有作用。
安裝程式只是將msgrp2p.xml此檔案解壓縮到MSN Messenger的安裝目錄中, 所以若要移除只需將此檔案刪除即可, 此外掛並不會修改到作業系統或任何程式。可以安心使用。

來張官方截圖看看效果吧!



聊天雙方可以任意在電子地圖上新增標記點並加以描述該點名稱及相關細節, 新增的標記點在雙方MSN的互動地圖上都會同時出現。用地圖聊天交換意見也是另一種新的體驗。

官方網頁

2007年3月14日 星期三

如何取得可信任的個人憑証(Certificate)

何謂Certificate(憑證):

與特定「主體」之「公開金鑰」有關、並經過數位簽署的一份「聲明」,而簽署者即為該份憑証的「發行者」(所以「發行者」也必須握有另一對私密與公開金鑰)。您也可以把憑證稱為「數位身份證」。

如何取得個人第一份可信任憑証?
微軟提供了一個可信任憑証碼產生工具,你可以由下列位址下載
http://www.microsoft.com/downloads/details.aspx?familyid=2b742795-d0f0-4a66-b27f-22a95fcd3425&displaylang=en#filelist
依作業系統下載檔案後(我是windows系統,所以下載codesigningx86.exe),將其解壓縮,可得到以下檔案
cert2spc.exe
certmgr.exe
chktrust.exe
makecat.exe
makecert.exe
makectl.exe
setreg.exe
signcode.exe
我們將利用makecert.exe產生屬於個人的第一個可信任憑証。

個人憑証檔產生步驟:
在COMMAND視窗中,輸入下列指令
makecert -r -cy both -sv tbof.key -eku 1.3.6.1.5.5.7.3.3 -n "CN=TBOF" tbof.cer
此命令將產生一個給TBOF的相關憑証檔,共計產生二個檔案,tbof.key與tbof.cer,其中.cer內容將會寫入手機中

cert2spc tbof.cer tbof.spc
此命令將產生一個.spc的檔案,供將來簽名程序時使用

其間會出現要求輸入密碼,若你不想使用,將其保留空白,直接繼續即可。如此一來,你就有了第一份屬於自己的可信任憑証檔。



如何將自己的可信任憑証以特權憑証模式寫入行動裝置?

為何行動裝置中的程式需要憑証?
安全性:為了避免程式被不知名第三者修改,導致程式不可信任。(如漢化、破解、植入病毒等)
可靠性:若程序的簽名憑証是由手機開發者所信任單位發出。則表示程序是經過手機開發者測試通過,是可靠的,不會造成手機系統崩潰等問題。安裝時,將不會出現任何警告訊息。

漢化者為何需要將自己的可信任憑証寫入行動裝置中,成為特權憑証?
手機中,部份注冊表與文件,必需以特權模式方能呼叫與修改,故部份程序開發者,在安裝程序時,藉由寫入自己的特權憑証,以確保其程序能正常執行。
如QPTools與Contacts Menu等軟件,這些軟件最明顯的特徵是CAB包中的_setup.xml可找到以下字串
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
這也是為何這類程序一但漢化或修改破解後,程序將無法運行。
原因是漢化者無法取得開發者的特權憑証,所以漢化後,漢化者重新寫入的憑証無法取得系統特權模式,使程序無法運行。
解決方法是,將自己的憑証先寫入手機中成為特權憑証。
缺點,漢化程序必需提供漢化者的憑証安裝檔(.xml)供使用者寫入其手機。若能做成CAB包對一般使用者會較方便。
特權憑証僅需安裝一次,若漢化者都使用同一個憑証檔。

將個人憑証以特權憑証模式寫入手機的步驟:
先取得openssl.exe檔,昨晚google找了一陣才找到windows下的(openssl.win32.097c.zip)雖不是最新版本,但已經夠用了。
目的是為了得到個人憑証的sha1碼與憑証的bas64編碼。
另外再取得rapiconfig.exe(可由smartphone SDK中取得),我放在附件中。

在COMMAND視窗中,輸入下列指令
1.建立憑証安裝檔
openssl sha1 tbof.cer
其中tbof.cer為剛才取得的憑証檔,畫面中將產生一組40個字元的SHA1數據。

openssl base64 < tbof.cer
畫面中將產生tbof.cer裏面內容的Base64編碼。

取得以上的數據後,將數值依序填入下面的相對位置,BASE64最好填成一行,以免出現不可預期的錯誤,將內容存成.xml檔
<wap-provisioningdoc>
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
<characteristic type="...SHA1...">
<parm name="EncodedCertificate" value="...BASE64..."/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

以我的為例tbof.xml內容為
<wap-provisioningdoc>
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
<characteristic type="451b30370017237eae8aec08e47b6d855a7cb253">
<parm name="EncodedCertificate" value="MIIBgjCCASygAwIBAgIOVFNFRL6OEdoM+pZH2+IwDQYJKoZIhvcNAQEEBQAwDzENMAsGA1UEAxMEVEJPRjAeFw0wNTA4MTQxMTM1NTJaFw0zOTEyMzEyMzU5NTlaMA8xDTALBgNVBAMTBFRCT0YwXDANBgkqhkiG9w0BAQEFAANLADBIAkEA4LmppsWXRtde8JpifUoEwrLRHfDwVXYbPxbWm3982W244gKz3/vGnasfJ+yPwGoGEFUoq2M1m6a4qoCOD3KxvwIDAQABo2YwZDANBgNVHQoEBjAEAwIGwDATBgNVHSUEDDAKBggrBgEFBQcDAzA+BgNVHQEENzA1gBBEI+0MSLutMEyQyJ747WJkoREwDzENMAsGA1UEAxMEVEJPRoIOVFNFRL6OEdoM+pZH2+IwDQYJKoZIhvcNAQEEBQADQQBBDFAiZIPfPLSxr6fJBKNcIr3uj997rPrpyRbHRJvC/56Wx+oNKazAVvyL2Xt23C8KadY01QbcB512LkF3Adxe"/>
</characteristic>
</characteristic>
</characteristic>
</wap-provisioningdoc>

將要寫入的憑証安裝檔準備好之後,接著要做寫入動作。

2.寫入憑証安裝檔到手機中
rapiconfig /p tbof.xml

寫入完成後,將手機重開機,你將可以在
HKLM\Comm\Security\SystemCertificates\Privileged Execution Trust Authorities\Certificates\
中找到自己的憑証內容,以我的為例,會找到這一組451b30370017237eae8aec08e47b6d855a7cb253
點進入後,可以在blob中看到你的.cer的內容,這時表示你的憑証檔已經寫入成特權憑証,以後以這組憑証簽名的所有程序,都將取得特權模式




如何將你漢化後的程序加上此特權簽名?

首先,完成你要漢化的程序(.exe 或.dll)

在COMMAND視窗中,輸入下列指令
signcode -v tbof.key -spc tbof.spc qptools.exe
輸入後,會要求輸入你建立憑証檔時的密碼,其中qptools.exe是我繁體化後的程序。

將此程序放回手機中,測試是否可以運行,OK。嘿嘿,我有了屬於自己的繁體化qptools了。
同理contacts menu等需特權模式才能運作的軟件亦有相同的問題,都可以此方法解決漢化後無法執行的問題。


附錄:
遇上注冊表軟件無法修改的鍵值時,如何刪除?如何建立.xml安裝檔?
經查找Microsoft的msdn後,終於找到答案。

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/devguidesp/html/sp_wce51samregistrycspexamplesozup.asp

1.SDK Documentation for Windows Mobile-Based Smartphones

Adding a Key and Values, and Modifying a Value Example
This example adds a registry key (Registry\HKLM\Software\Microsoft\TestKey3), adds values to the key, and then modifies one of the values (TestValue).

<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Software\Microsoft\TestKey3">
<parm name="TestValue" value="5" datatype="integer" />
<parm name="TestValueBoolean" value="1" datatype="boolean" />
<!-- boolean is stored as an integer in the registry -->
<parm name="TestValueFloat" value="3.14159" datatype="float" />
<!-- float is stored as a string in the registry -->
<parm name="TestValueString" value="testtesttest"
datatype="string" />
<parm name="TestValueDateTime1" value="10/20/01 3:55:04 pm"
datatype="date" />
<!-- date and time may be combined into a
single value using either date or time datatypes -->
<parm name="TestValueDateTime2" value="10/20/01 3:55:04 pm"
datatype="time" />
<parm name="TestValueString2"
value="string1string2string3" datatype="multiplestring" />
<!-- multiple strings are separated by  -->
<!-- multiple strings are ended with two  -->
<parm name="TestValueInteger"
value="5iAGkAbgBhAHIAeQAgAGIAbABvAGIA" datatype="binary" />
</characteristic>
</characteristic>
</wap-provisioningdoc>



2.SDK Documentation for Windows Mobile-Based Smartphones

Deleting a Key, Values and Subkeys Example
This example deletes a key (Registry\HKLM\Software\Microsoft\TestKey3), including the associated values and subkeys, from a registry.

<wap-provisioningdoc>
<characteristic type="Registry">
<nocharacteristic
type="HKLM\Software\Microsoft\TestKey3"/>
</characteristic>
</wap-provisioningdoc>



3.SDK Documentation for Windows Mobile-Based Smartphones

Deleting a Value Example
This example deletes a value (TestValue) from a registry key (Registry\HKLM\Software\Microsoft\TestKey3).


<wap-provisioningdoc>
<characteristic type="Registry">
<characteristic type="HKLM\Software\Microsoft\TestKey3">
<noparm name="TestValue" />
</characteristic>
</characteristic>
</wap-provisioningdoc>

透過這個.xml格式的注冊表安裝檔的建立及rapiconfig, 沒有刪不掉、建立不了的注冊表。
嘿,以前那些移除不了的程式清單也因此而乾乾淨淨, 算是另一個收獲。

以上內容,純為TBOF個人漢化研究使用,僅在IOICN漢化組發表。

呵,感謝qptools,因為這程序蠻好用的,但繁體化後一直無法使用,經研究其_setup.xml檔後,才開始這一連串的研究。
也感謝google上無盡的資源,讓我少走許多冤枉路。

文中很多不專業名辭,希望大家看得懂就好,報告完畢,敬請多多指教。
(這篇文章是2005年時,與一群漢化同好,在做國內外知名Smartphone軟體,簡繁體中文化時所撰寫。)