Windows的註冊表就像一個地下迷宮,每當我們感覺對它瞭解一些的時候,卻發現它還包含著一個新的迷宮……我們擁有很多修改註冊表的工具,但它們總是在註冊表被軟體修改之後才能用得到,怎麼才能在註冊表被改動的第一時間就發現呢?很多殺毒軟體都忽視了對註冊表的保護,而這往往是木馬病毒滋生的溫床!
註冊表是一個龐大的資料庫,我們對它只有一個靜態瞭解。其實,瞭解註冊表動態資料變化更有意義,因為幾乎所有軟體在安裝和運行過程中,都會修改註冊表資料,而這些註冊表資料的變化很可能是有害的,例如木馬程式添加的自啟動資料。通過對註冊表進行監視,你就能觀察到這些資料的變化,同時,通過對註冊表資料動態變化的分析,你還可以瞭解到更多關於註冊表的秘密。下面就通過三個監視註冊表的執行個體,來瞭解系統的秘密。
超級兔子的秘密
許多朋友很喜歡用超級兔子來修改一些系統選項,用起來確實方便。不過,對於一些喜歡凡事問個究竟的朋友來說,可能心裡一直有一個疑問:超級兔子究竟是修改了註冊表中的哪些資料呢?軟體作者怎麼發現它們的?這些都屬於超級兔子的秘密,一般來說,我們是很難得知的,不過通過Regmon軟體對註冊表的監視,你就能發現它其實很簡單。
Regmon
第一步:運行Regmon,單擊菜單“選項→過濾器→高亮”,在這裡需要設定過濾條件,讓Regmon只顯示超級兔子對註冊表修改的資料。在“包含”欄中輸入超級兔子魔法設定的進程檔案名稱“srms.exe”(見圖1),並在下面只選中“記錄寫入”、“記錄成功”兩個選項,其他要監視的選項全部取消,這樣可以大大減少無用監視資料,提高分析效率。
第二步:單擊“確定”按鈕,這時Regmon會提示你“要應用程式更新的過濾設定到當前輸出嗎?”,點擊“是”按鈕返回主介面,然後按“Ctrl+X”快速鍵清除當前視窗中已經顯示的監視資料。
第三步:運行超級兔子,開啟“案頭與表徵圖→表徵圖選項”。
執行個體:透視“禁止使用縮圖加速”
這裡來分析一下“禁止使用縮圖加速”技巧究竟是如何修改註冊表的。首先選中該選項,單擊“應用”按鈕,切換到Regmon,你會發現視窗中顯示有13個記錄,這是超級兔子的設計問題,即使只修改了這個頁面中的一個選項,它也會把該頁面中所有選項對應的註冊表資料重寫一下,所以就會產生很多資料。
那怎樣才能判斷出究竟哪個才是對應的資料呢?只需再次取消“禁止使用縮圖加速”選項,並點擊一次“應用”按鈕,返回Regmon,你會發現視窗中又出現了13個記錄,現在仔細對比“其他”列中前13個記錄與後13個記錄的資料,會發現只有兩個記錄的資料是不同的(見圖2)。
這兩個記錄對應的“路徑”列指向的註冊表索引值都是相同的,即HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced主鍵下的“DisableThumbnailCache”索引值。由此我們可以分析得出結論,該索引值為“1”表示禁止使用縮圖加速,索引值為“0”表示允許使用縮圖加速功能。
小提示
利用Regmon的註冊表動態監視功能,還可以對一些有使用天數限制的共用軟體進行監視,找出記錄使用時間的註冊表索引值,修改該索引值資料就能延長使用到期日。
它們都幹了些什麼
註冊表體積與系統速度關係密切,所以大家都不希望軟體在安裝時向註冊表中寫入資料。那麼,如何才能知道一個軟體究竟對註冊表做了什麼修改呢?你可以通過以下兩種方法進行偵查。
1.FC命令
安裝新軟體前,開啟登錄編輯程式,選擇“註冊表→匯出註冊表檔案”,利用“全部”選項,將結果檔案儲存為Before.txt(不要使用REG副檔名)。安裝新軟體或進行使用者想跟蹤的其他任何更改後,開啟登錄編輯程式,再匯出整個註冊表,這一次將匯出的檔案命名為After.txt檔案。接著開啟MS-DOS命令視窗,轉換到有那兩個文字檔的目錄中,然後執行以下命令:
FC Before.txt After.txt > Diff.txt
關閉DOS視窗,在“記事本”中開啟Diff.txt檔案,這裡會顯示在註冊表所發現的所有不同之處。
2.RegShot
Regshot可以幫你瞭解到這些資訊,它可以在軟體安裝前後為註冊表建立兩個快照。通過分析快照檔案,找出有變化的註冊表資料,並把比較結果輸出為易讀的報告檔案。
軟體備忘:Regshot是一款多國語言版軟體,運行後在右下角的語言下拉框中選擇“中文GB”即可切換為簡體中文介面。
執行個體1:全面捕捉UltraISO對註冊表做了什麼
第一步:運行Regshot,設定好報告檔案輸出格式和輸出路徑,軟體提供有“TXT文檔”和“HTML文檔”兩種方式可以選擇。單擊第一個“攝取”按鈕,彈出下拉式功能表,選擇“攝取”,這時Regshot會自動對系統註冊表做一個快照(見圖3),當快照掃描完畢時,第一個“攝取”按鈕變灰。
第二步:安裝要分析的軟體,例如UltraISO,安裝完畢後,切換到Regshot視窗單擊第二個“攝取”按鈕,選擇“攝取”做第二個註冊錶快照。當快照掃描完畢後,單擊“比較”按鈕,Regshot會對兩個快照進行比較,並自動開啟產生的結果報告檔案。
第三步:從報告檔案中可以看到UltraISO安裝時對註冊表資料所做的修改,如增加的主鍵、增加的索引值以及修改的索引值等,非常直觀。
小提示
一些軟體內建的卸載程式並不能從註冊表中徹底清除所有添加的資料,這時就可以根據Regshot產生的報告檔案來手工清除這些無用的註冊表資料,為註冊表“減負”。
捉住註冊表中的“內鬼”
一些軟體安裝後會自動添加自啟動程式而不提示使用者,更有一些木馬程式則會偷偷地在系統中植入木馬自啟動程式,這些“動作”很難直觀地看到。不過筆者發現在著名的木馬檢測程式The Cleaner中有一個單獨的註冊表即時監視工具—TCMonitor,有了它,就能保障註冊表不被非法修改了。
TCMonitor
軟體備忘:以上提供的是The Cleaner的,該軟體是一款共用軟體,但其組件TCMonitor卻是完全免費的,不過需要手工提取該組件,方法是把C:\Program Files\The Cleaner目錄中的“tcm.exe”和“siren.wav”兩個檔案單獨複製出來即可。
第一步:現在開始運行“tcm.exe”,首先它會彈出提示框,詢問是否修複關聯資料和禁止指令碼執行,一般應選中這兩個選項,並選擇“Please do not ask me again”選項,讓它下次不再提示,然後直接單擊“OK”按鈕,這時TCMonitor會自動縮小在系統托盤中後台工作。
第二步:雙擊托盤表徵圖開啟軟體主介面,在列表中顯示的就是TCMonitor正在監視的註冊表主鍵,這些都是系統中非常重要的資料,也是病毒木馬最容易入侵修改的地方,大概瞭解這些資訊後,關閉這個介面讓它繼續後台工作。
第三步:當有軟體或者病毒木馬修改被監視的索引值時,TCMonitor會馬上發出聲音警示提示,同時彈出提示對話方塊顯示被修改的主鍵(見圖4),如果確認這個修改是無害的,可直接單擊“Ignore this alarm and accept the changes”按鈕忽略警報並接受修改。
如果不能確認,則可以單擊“Examine or edit the changed data”按鈕,這時TCMonitor會在新視窗中顯示出修改前(Expected data)和修改後(Actual data)註冊表資料的變化情況(見圖5),你可以很容易地判斷出為個變化是否屬於正常修改。在這裡單擊“Reset Alarm”按鈕可以取消警報,單擊“Launch Editor”則會直接調用登錄編輯程式開啟被修改的主鍵,你可以手工修正被非法修改的資料。
小提示
在TCMonitor中可以手工編輯要監視的註冊表資料列表,利用這個功能,只需要添加IE相關資料,就能隨時提醒惡意網頁對IE的修改。在TCMonitor主介面中單擊菜單“Edit→Edit Watch Data”,選中“Registry Watch”選項,在右邊選擇要監視的根鍵“HKLM”,並填寫好主鍵“\SOFTWARE\Microsoft\Internet Explorer\Main”,單擊“Add”按鈕添加到列表,並單擊“Save”存檔即可。而且TCMonitor還可以對檔案和檔案夾進行監視,這些功能就不再細說了。