MS Regedit 十六进制到日期的转换

MS Regedit 十六进制到日期的转换

我正在尝试通过注册表路径分析 Win 10 上的冗余网络配置文件: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles

但是,我无法从十六进制格式表示中解释日期。

例如:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\NetworkList\Profiles\{GUID}]
"ProfileName"="XXXXXXXXX"
"Description"="XXXXXXXXX"
"Managed"=dword:00000000
"Category"=dword:00000000
"DateCreated"=hex:e4,07,05,00,04,00,0e,00,14,00,16,00,06,00,8b,01
"NameType"=dword:00000047
"DateLastConnected"=hex:e4,07,05,00,04,00,0e,00,14,00,30,00,30,00,04,03

如何将十六进制转换e4,07,05,00,04,00,0e,00,14,00,16,00,06,00,8b,01为更易读的内容?可重复使用的解决方案将更有帮助。

答案1

您有 3 种可能的方法:

手动

第三种方法描述这里适用于 Windows 7,但它也适用于 Windows 10。应用该页面上描述的方法,提供以下步骤:

  1. 将日期从小端转换为大端。例如,您的日期创建为:(e407 0500 0400 0e00 1400 1600 0600 8b01我添加了空格以便更好地显示)。要转换为大端,每 2 个字节交换一次,您将得到07e4 0005 0004 000e 0014 0016 0006 018b
  2. 转换为十进制后得到的年份为07e4:2020。
  3. 月份00005转为小数:5 = 五月
  4. 然后将星期几0004转换为十进制:4 = 星期四
  5. 将日期000e转换为小数:14 = 该月的第 14 天
  6. 小时0014转为小数:20 = 20:00 或 08:00 PM
  7. 分钟0016转为小数:22 = 22 分钟
  8. 将秒数0006转换为小数:6 = 6 秒
  9. 千分之一秒018b转换为小数:395 = 0.395 秒。

您的创建日期是 2020 年 5 月 14 日,20:22:06.395。

使用 Powershell

您可以尝试按照说明使用 PowerShell这里

使用 DCode

另一种可能性是使用编码。插入要转换的十六进制日期,选择十六进制(小端)作为格式,然后单击解码按钮。

在此处输入图片描述

答案2

使用Python 3.9:

n=list(map(str,input("Enter Hex value : ").split(",")))
l1=[]
l2=[]
for i in range(0,len(n),2):
  l1.append(n[i])
for j in range(1,len(n),2):
  l2.append(n[j])

l3=[str (x) + str (y) for x, y in zip (l2, l1)]
print("Date (YYYY/MM/DD): ")
for i in range(len(l3)):
  if i!=2 and i<4:
    res = int(l3[i], 16)
    print(res,end="/")

print("\n")
print("Time (HH:mm:ss:ms): ")
for i in range(len(l3)):
  if i>3:
    res = int(l3[i], 16)
    print(res,end=":")

相关内容