我正在尝试通过注册表路径分析 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。应用该页面上描述的方法,提供以下步骤:
- 将日期从小端转换为大端。例如,您的日期创建为:(
e407 0500 0400 0e00 1400 1600 0600 8b01
我添加了空格以便更好地显示)。要转换为大端,每 2 个字节交换一次,您将得到07e4 0005 0004 000e 0014 0016 0006 018b
- 转换为十进制后得到的年份为
07e4
:2020。 - 月份
00005
转为小数:5 = 五月 - 然后将星期几
0004
转换为十进制:4 = 星期四 - 将日期
000e
转换为小数:14 = 该月的第 14 天 - 小时
0014
转为小数:20 = 20:00 或 08:00 PM - 分钟
0016
转为小数:22 = 22 分钟 - 将秒数
0006
转换为小数:6 = 6 秒 - 千分之一秒
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=":")