概念
注冊表是Microsoft Windows操作系統(tǒng)中的一個重要數(shù)據(jù)庫,用于儲存系統(tǒng)和應(yīng)用程序的設(shè)置信息。
打開注冊表編輯器
打開windows開始菜單的運行
怀骤,然后鍵入regedit
,便打開了Windows自帶的注冊表編輯器淆衷。
初步讀懂注冊表編輯器內(nèi)容
1. 根鍵(HKEY)與主鍵
注冊表左側(cè)有五項(xp有六項)最大的文件夾為**根鍵 **镀首,根鍵打開后的第一級文件夾目錄都是主鍵习绢,子鍵就是子文件夾蝎土,很好理解涮雷。
【HKEY_CLASSES_ROOT】阵面。該根鍵包含有關(guān)OLE的信息,以便在系統(tǒng)工作過程中實現(xiàn)對各種文件和文檔信息的訪問洪鸭。具體內(nèi)容包括已注冊的文件擴展名样刷、文件類型、文件圖標览爵、從win.ini文件中引入的擴展名的數(shù)據(jù)等置鼻,此外還包括諸如“我的電腦”、“回收站”及“控制面板”等標志蜓竹,該根鍵的數(shù)據(jù)適用于所有用戶箕母。
【HKEY_USERS】。該根鍵中包含了用戶根據(jù)個人愛好所設(shè)置的諸如桌面梅肤、背景司蔬、開始菜單程序項、應(yīng)用程序快捷鍵姨蝴、顯示字體及顯示器節(jié)能設(shè)置等信息俊啼。其中的大部分設(shè)置都可以通過控制面板進行修改,有經(jīng)驗的用戶也可以直接在注冊表中對這些設(shè)置進行修改左医。
【HKEY_CURRENT_USER】授帕。該根鍵中保存了當(dāng)前登錄用戶的配置信息及登錄信息,實際上它就是根鍵HKEY_USERS中.Default分支下的一部分內(nèi)容浮梢。如果在HKEY_USERS.default分支下沒有用戶登錄的其他內(nèi)容跛十,那么這兩個根鍵所包含的內(nèi)容是完全相同的。
【HKEY_LOCAL_MACHINE】秕硝。該根鍵包含了本地計算機(相對于網(wǎng)絡(luò)環(huán)境而言)系統(tǒng)軟件和硬件的全部信息芥映。當(dāng)系統(tǒng)硬件配置和軟件設(shè)置發(fā)生變化時,該根鍵下的相關(guān)項也就發(fā)生相應(yīng)的變化,其中的數(shù)據(jù)適合于所有用戶奈偏。
【HKEY_CURRENT_CONFIG】坞嘀。該根鍵包含所有連接到本計算機上的硬件的配置數(shù)據(jù),這些數(shù)據(jù)會根據(jù)當(dāng)前計算機連接的網(wǎng)絡(luò)類型惊来、硬件配置以及應(yīng)用軟件的安裝的不同而不所變化丽涩。它實際上是指向HKEY_LOCAL_MACHINE\Config分支的指針,其下的主鍵及內(nèi)容與HKEY_LOCAL_MACHINE\Config\0001分支下的主鍵和內(nèi)容是完全相同的裁蚁。
(【HKEY_DYN_DATA】矢渊。該根鍵包含了系統(tǒng)運行過程中的動態(tài)數(shù)據(jù)信息,比如系統(tǒng)性能和即特即用的動態(tài)信息等枉证。此外矮男,它還包含了那些需要更新和檢索的數(shù)據(jù)。該根鍵實際上是指向根鍵HKEY_LOCAL_MACHINE的一個分支刽严,所以在xp之后的系統(tǒng)上已不再出現(xiàn)昂灵,直接是HKEY_LOCAL_MACHINE。)
因為主鍵過多舞萄,我們就不多說了,稍后可能會挑幾個要用到的提一下管削,具體大家可以參考這里的關(guān)于主鍵的說明(別吐槽倒脓,這是我千辛萬苦能找到的唯一的注冊表學(xué)習(xí)教程,大家如果能找到更好的一定要告訴我/(ㄒoㄒ)/~~)
2. 鍵值對
注冊表大概的格式就是由 鍵 和 值項 ** 組成含思。鍵**就是那些分支的文件夾崎弃,而 值項 由名稱、數(shù)據(jù)類型以及分配的值組成含潘。一個鍵可以有一個或多個值饲做,每個值的名稱各不相同,如果一個值的名稱為空遏弱,則該值為該鍵的默認值盆均。
注冊表的數(shù)據(jù)類型主要有以下四種:顯示類型(在編輯器中)數(shù)據(jù)類型說明
3. reg文件書寫
創(chuàng)建文本文檔,即可開始寫入
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\shell\cmd_here]
@="cmd here"
[HKEY_CLASSES_ROOT\Directory\shell\cmd_here\command]
@="cmd.exe /k cd %1"
第一行就是指定注冊表編輯器格式漱逸,類似HTML的文檔聲明泪姨,2、4行是要創(chuàng)建的鍵饰抒,2肮砾、5是其對應(yīng)的值。然后保存袋坑,記得后綴名改為.reg
然后雙擊即可注入此注冊表仗处。
應(yīng)用
1. 設(shè)置應(yīng)用打開文件夾
剛剛的語法格式我們示范了如何以cmd右鍵打開文件夾,但是如何在文件夾中不選中文件夾,直接右鍵菜單中打開此文件夾呢婆誓?
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd_here]
@="cmd here"
[HKEY_CLASSES_ROOT\Directory\Background\shell\cmd_here\command]
@="cmd.exe /k cd %1"
這樣寫即可做到吃环,有什么區(qū)別呢?我們可以看到這里創(chuàng)建鍵時是在主鍵Background中創(chuàng)建的旷档,這意味著在文件夾背景中點擊右鍵菜單會出現(xiàn)的應(yīng)用擴展菜單模叙。shell里創(chuàng)建鍵cmd_here,值表示在右鍵菜單中的名字鞋屈,然后這里的子鍵command就表示會執(zhí)行的命令范咨,其中“/k”表示執(zhí)行完后不關(guān)閉窗口“%1中%1”是“CD”命令的第一個(%1)參數(shù)(這里是路徑)。不過為什么同樣的格式會這樣有不同的功能厂庇,這是系統(tǒng)自己的設(shè)置渠啊,畢竟注冊表的前身就是Windows系統(tǒng)中的 ini 配置文件。我們只需遵循語法权旷,注意所屬目錄是哪里的配置即可替蛉。
2. 鏡像劫持
所謂的鏡像劫持,就是在注冊表的[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Image File Execution Options](IFEO拄氯,映像劫持躲查,留給程序員調(diào)bug的)處新建一個以目標程序命名的項,例如22.exe译柏。然后再創(chuàng)建一個子鍵"Debugger"="C:\WINDOWS\system32\drivers\33.exe"镣煮。以后只要用戶雙擊 22.exe就會運行OSO的病毒文件33.exe,類似文件關(guān)聯(lián)的效果鄙麦。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Image File Execution Options]
"Debugger"="C:\WINDOWS\system32\drivers\33.exe"
但是現(xiàn)在的Windows系統(tǒng)因為權(quán)限問題典唇,一般這樣是不會成功將值寫入注冊表的,需要事先設(shè)置權(quán)限胯府,然而介衔,為了安全起見,謹慎修改寫入注冊表這些關(guān)鍵鍵的權(quán)限骂因。