2007年12月18日 星期二

移除程式後的餘毒(Follow-Up for Program Removal)

最近除了忙著處理變種kavo造成的影響之外,還有忙著幫人處理某些軟體的安裝,明明是同樣的安裝方式,為什麼有的電腦可以,有的卻是怎麼都安裝不上去。

其實早在好幾年前,筆者曾看過有關試用軟體的破解討論,當時不像現在網路這麼發達,所以很多東西只要在自己本機上動點手腳,往往就可以無限制的延用下去。

經過了這幾年的變化,很多授權的保護,都得經過網路連線到特定主機認證後才能使用,所以不是在自己本機上動點手腳就能延續使用(唔!離題了,這裡不是要教人怎麼破解...),其實試用軟體的本意是好的。

不過,試用完後的刪除,很有可能就會為你帶來很多困擾,尤其是多版本別的軟體,更要小心處理,無論刪除/保留共用檔,或是將軟體移除乾淨都是很重要的一件事。

為什麼我會這麼說呢?其實這種經歷我不確定是否每個人都曾經遇過...

實例:

你在網路上找了A軟體試用版4.0,但是最後實際買來的軟體是A-3.0的版本,結果安裝時系統發現有更新的版本在電腦裡,無法安裝,就算使用控制台的移除程式後,一樣無法正常地把A-3.0安裝上去。這時候的解決方式有:

1.重開機:看是否因為此次開機的設定檔還在,無法安裝。
2.清除安裝資料夾:PROGRAM FILES裡或各別的資料夾。
3.改變安裝路徑:原因與2相同,避免新版檔案無法覆蓋。

如果以上的方式都無法正常地安裝上去,這時候你就要思考一下是不是在登錄檔
(Registry)裡,有未刪除掉的軟體資訊,避免你透過重灌的方式來延長免費試用的時間,這算是軟體公司為了保護自己的作法之一。(有時我覺得是漏洞,在程式移除時,沒有「順手」把登錄檔裡的資訊刪除)

這時候你就必須透過修改登錄檔來完成清除的動作,你是可以參考登錄檔的指令來處理,或者是透過REGEDIT這個UI來刪除相關機碼。

但是軟體所寫入的機碼,往往不是只有幾行而已,而是散落四處,除了主要部份會落在HKCU\SoftwareHKLM\Software這兩個路徑之外,有些機碼可能會寫在其它位置(一般來說只要把這兩個地方的相關機碼清除都能解決)。

其實網路上也有不少相關的軟體,可以協助你清除相關的機碼,例:Onecare(M$出的)RegCleaner(請上Google找找)、CCleanerWise Registry Cleaner...等,都能夠達到一樣的效果。

在透過這一類軟體來清除登錄檔時,因為它可以針對特定字元相關程式做搜尋,遠比自己去搜尋快速許多。不過,筆者還是要奉勸大家,操作前,請先透過匯出的功能,先做一次完整的備份,以免造成系統不穩定時,還可以透過匯入的方式來救援。(使用reg import的指令即可匯入)

在實務的經驗裡發現,管理安全規範固然重要,備份的重要性絕對不低於前述三點,雖然有時候備份會成為資源的一種消耗,但是風險的評估之下,這一切都是值得的。

除了這部份之外,移除程式後的問題還有那些呢?

其實,還有很多未知的狀況,例:造成其他程式無法正常開啟(關閉)、無法正常登入系統、無法關機...等,這些平常看起來不太可能發生的事,有可能你一個小小的動作就...

最後,請大家還是不要衝動地,胡亂安裝各種程式(如果是測試的話,建議在虛擬器下進行),套句俗語:「神容易,送神難」,在軟體上也是需要三思而後行。