登录档的资料格式与.reg档的介绍--各种REG的乱斗

本篇我们要来介绍,登录值的格式、.reg档的意义,不过最後登录档的备份因为篇幅太长我就留到下篇来讲,各位的热忱在听了一堆解说後可能稍稍消磨些,本篇的目的是希望可以讲完我们改登录档前所需具备的知识,下篇做好前置作业,赶快进入自己动手的好玩实验~


登录值的格式

看到很多文章介绍登录档都会先提这个,但笔者希望可以先了解意义後再来细读这部分会比较有带入感,所以我也是到这篇才来研究格式的,以下分享几个主要常用的格式给各位理解,他们都以"REG_"为开头,如果遇到稀有格式再来补充:

字串

  • REG_SZ(字串值):一段固定长度的文字字串,通常以UTF-16LE存储用NUL字符结尾,总是在引号内显示,一般用来表示档案的描述,硬体标识等
  • REG_MULTI_SZ(多字串值):含有多个值的一个字串,可以当作一个非空字串值的列表,以UTF-16LE存储,允许SPACE和ENTER标识,字串间用NUL分隔、整个列表用结尾两个NUL,常用多种网路协议、装置列表等等
  • REG_EXPAND_SZ(可扩充字串值):一个可变长度的字串值,可以包含环境变数像是前面提到的%SystemRoot%,通常以UTF-16LE存储用NUL字符结尾,用来支援显示复杂资料,包括在程序或服务使用资料时解析的变数

二进位

  • REG_BINARY(二进位值):不定长度的二进位值,以十六进位制显示在登录档编辑器中(用二进位显示的话会看到天荒地老,所以编辑器通常用16进位显示给使用者阅读和更改),用来储存大多数硬体设备的资讯。
  • REG_DWORD(双字值):Double Word的概念,我们知道一个Word是16bit,所以这个格式就是指一个32位元的unsigned整数,也就是4个bytes长,通常用16进位值显示(也就是说有8码),可以用16进位或10进位编辑,又称REG_DWORD_LITTLE_ENDIAN,在出错控制功能上用处极大
  • REG_QWORD(四倍字值):Quad Word的概念,64位元的整数,以二进位显示,最早在Windows 2000中引入。

登录档的脚本(.reg档)

修改登录档的方法很多,除了regedit.exe以外,也可以使用第三方软件,或是Windows SDK也提供Registry API去修改,cmd的REG指令也可以做到。
Imgur
cmd的REG指令:https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reg

那下面要介绍的是使用一个基本款的方式,用.reg档案来修改登录档:

所谓的.reg档,就是登录档汇出的脚本文件,他也可以用来汇入登录档到系统中。你可以用文字编辑器打开他,会发现他具有一定的格式语法。前面提到登录档是一个资料库嘛,所以如果学过资料库,你可以想像他就是你今天汇出资料库的SQL语法档案,把他执行可以用来编辑资料库的内容,甚至汇出指令就可以代表整个资料库的拷贝,这些指令也是人类易读的可以被文字编辑打开编辑,他类似以下这样子:
Imgur

实际上今天你双击一个.reg档会被regedit.exe用汇入的功能直接执行,这个动作被翻译为「汇入登录项目档案」,但他不受Regedt32.exe的支援。这个功能对一个非专业的使用者也可以容易操作,我们可以用他当作备份和还原的档案,甚至我们可以用这个档案远端发送给多台Windows电脑变成一种统一部属设定的方式,或是当有人登录档损坏也可以用这个档案做为修补包发送给用户执行,之後我可能会写一篇简单的.reg档教学当作体验,如果有这个心力的话哈哈。

好的,以上就是今天的介绍,包含登录值格式和说到登录档就要知道的.reg文件,我们开始渐渐有头绪知道登录档这项技术了,下篇要来知道他的风险和备份方式,当作我们实际操作的前置作业。

Imgur

参考资料:
https://tphcc.ebook.hyread.com.tw/bookDetail.jsp?id=11615 (电子书)
https://iter01.com/515763.html
https://en.wikipedia.org/wiki/Windows_Registry
https://zh.wikipedia.org/wiki/%E6%B3%A8%E5%86%8C%E8%A1%A8
https://docs.microsoft.com/en-us/troubleshoot/windows-server/performance/windows-registry-advanced-users
https://www.asus.com/tw/support/FAQ/1018810/
https://ppfocus.com/0/trecfce83.html


<<:  DAY14 - 拓扑排序

>>:  [Day 01] 前言

D-13, Ruby 正规表达式(一) Regexp && Valid Palindrome

刚开始看不懂那些乱码时,真的很痛苦。 Regular Expression常简写regexp,也是R...

Angular 深入浅出三十天:表单与测试 Day02 - Template Driven Forms 实作 - 以登入为例

今天要来用 Template Driven Forms 的方式实作一个简单的登入系统,撇开 UI ...

Day17-维稳? StatefulSet介绍

在pod的生态中,本身就是一个小小世界,新旧pod之间通常不影响,当建立新的pod时,基本上不会跟被...

[Day 12] 开关 Switch

Day11 开关通常用於两个状态的切换 以笔者常用个功能 会在nav中加入切换语系的开关 首先先在u...

自动化 End-End 测试 Nightwatch.js 串接 Google sheet

之前撰写测试时有提到串接 BrowserStack 的服务,而执行时也可以透过 nightwatch...