2020年6月4日 星期四

機碼說明

  • 登錄檔(Registry):Windows 作業系統內建的一個樹狀、有階層式,存放所有電腦相關設定資訊的資料庫。
  • 子機碼- 樹狀子目錄及識別碼的次級
  • Hive - Each hive contains a registry tree, which has a key that serves as the root or starting point of the tree. 例如增加一個電腦使用者時,HKEY_USERS 機碼下會新增一個 user profile hive,包含新使用者的應用程式、桌面、網路連線等設定
  • 登錄值主要存在兩個檔案中:System.dat 與 User.dat
    • System.dat 存放電腦目前的使用設定資料。
    • User.dat 存放使用者的設定資料
      • 安裝在電腦上的程式有哪些、每個程式可以建立的文件類型、資料夾與圖示等屬性設定。
      • 系統上有哪些硬體存在。
      • 正在使用連接埠 (port) 是哪幾個。
  • 登錄檔編輯程式(登錄檔的檔案總管):Regedit.exe,透過此程式(or command-line registry tools like: Reg.exe; Reg means Registry)才允許存取或修改登錄檔。
  • 可以用 Windows Sysinternals Tools - Process Monitor 來監控 Registry activity。

登錄的六大「機碼」及三大「數值」。
  • Registry 依照 Windows 的需求主要可分為六大機碼,讓系統依照這些設定來運作。副檔名為「.reg」。
  • Root Key 的開頭會是H,因為 root-key 代表的是Windows handles (H) to keys (KEY).

六大機碼(系統設定)
  1. HKEY_CURRENT_USER - HKEY_CURRENT_USER為HKEY_USERS的子機碼。HKEY_CURRENT_USER機碼記載著目前正在用電腦的使用者資料(包含軟體、系統的配置與偏好設定)。所以不同的使用者用不同的帳號登入系統,會看見不同的「桌面設定」或「開始」功能表。
  2. HKEY_USERS - 紀錄著所有該機器使用者(有 loaded 初始化過的)的資料。
  3. HKEY_CLASSES_ROOT - 記載著各種副檔名的類型,如「.doc」的檔案,就被定義為文字檔,並且記錄將用何應用程式(例如:Microsoft®的Word)來開啟此一類檔案。當下次在點擊此一類檔案,系統就會直接用相對應的應用程式來開啟。
  4. HKEY_LOCAL_MACHINE - 電腦各種硬體設定等系統相關的資料。如BIOS或各種週邊、印表機、光碟機、數據機等等。
  5. HKEY_PERFORMANCE_DATA - 存取 Performance counter 的資訊。
  6. HKEY_CURRENT_CONFIG - 記載目前使用硬體的設定,為一特定使用者(HKEY_CURRENT_USER)對應的電腦各種硬體設定的資料(HKEY_LOCAL_MACHINE機碼)。現在 Windows 已經沒有採用 hardware profile,不過為了向下相容,此 key 還是保留著。

(補充)HKEY_DYN_DATA機碼﹝Windows 98/Me only﹞:Windows 98/Me的使用著才會用到。HKEY_DYN_DATA機碼是存在於記憶體里的動態資料。每次開機時,Windows都會建立此機碼的資料,關機時,此機碼的資料就消失了。HKEY_DYN_DATA機碼的主要功能是用來監視系統功能,實質上並無新增或修改機碼的必要。

三大數值
登錄檔中的登錄值類型有12種,不過實際可能用到的類別只有6種,也就是在登錄編輯程式右邊窗 格空白處按右鈕並執行新增命令後,可以增加的6種登錄值。
機碼內常用到的有三種「數值」檔案:字串值、二進位值、DWORD值,以及這三類檔案的變形:多字串值、可擴充字串值、QWORD,這些檔案則分別記載著各項系統的不同設定值。
  1. REG_SZ - 字串值:用來儲存字串(Unicode)。字串包括字、整數、小數點及負數。字串值儲存數字,電腦處理的轉譯過程會較耗時。
  2. REG_Binary - 二進位值:用二進位值儲存資料,如「00 01 00 05 …」。較不易看出所儲存資料的內容。
  3. REG_DWORD:可以是十進位或十六進位來編輯,但不能是負數,如「#3333FF (16)」,括弧里表示十六進位,顏色表示是最常用的DWORD值,#3333FF (16)在這裡是「藍色」的意思。

NOTE:登錄檔中沒有區分大小寫,不管使用大寫或小寫字母,系統都視為相同字母。不過為了方便閱讀而區分大小寫,實際輸入時,可以依照自己的習慣來決定使用大寫或小寫字母。

REGEEDIT
整個登錄檔的內容主要是由「機碼」與「登錄值」所構成,左邊窗格如同資料夾圖示一般的就是「機碼」,而在右邊窗格中一列一列的項目為「登錄值」,上方為功能表,下方為狀態列,下面就針對「登錄編輯程式」各功能做解說。
  • 功能表:regedit登錄編輯程式的功能表,介面相當簡單易用,沒有什麼複雜的功能。
  • 機碼區:左邊類似目錄的欄位,就是記載機碼的地力,機碼原文Key,它的圖示和檔案總管中的資料夾 是一樣的,不僅如此,它在登錄檔中的定位和資料夾也頗類似的,而在每個機碼下的其他機碼,我們稱 它為「子機碼」(SubKey)。
  • 數值區:在右邊則是數值區,記載著各種不同的登錄值,如果說機碼類似資料夾,那登錄值就是儲存 在資料夾裡的檔案,每個登錄值都具有名稱、類型,資料等欄目,這是我們實際要修改的數值資料,我們也可以直接按下滑鼠右鍵新增登錄值資料。
  • 狀態列:可以顯示目前regedit登錄編輯程式的位置,在「深入」複雜的機碼目錄後,這個狀態列相當好用[3]。

References


截取自

沒有留言:

張貼留言

WPF聊天室应用(ASP.NET Core SignalR)

  WPF聊天室应用(ASP.NET Core SignalR) https://www.bilibili.com/video/BV1Q741187Si?p=2 https://www.bilibili.com/video/BV1UV411e75T?from=search&...