最近cha询已激活Windows系统的产品密钥做备份,找了很多代码 很多都是说这个注册表 .版本 2 .子程序 DigitalProductId_解码, 文本型 .局部变量 DigitalProductId, 注册表_键 .局部变量 字节集_bkey, 字节集 .局部变量 数组_akeys, 整数型, , "0" .局部变量 计次, 整数型 .局部变量 整数_iswin10, 整数型 .局部变量 整数_ikeyoffset, 整数型 .局部变量 文本_map, 文本型 .局部变量 整数_i, 整数型 .局部变量 整数_current, 整数型 .局部变量 整数_ix, 整数型 .局部变量 输出文本, 文本型 .局部变量 整数_last, 整数型 .局部变量 整数_格式i, 整数型 .局部变量 文本返回, 文本型 集_注册表.读取键值Ex (#HKEY_LOCAL_MACHINE, “SOFTWARE\Microsoft\Windows NT\CurrentVersion”, “DigitalProductId”, DigitalProductId) 字节集_bkey = DigitalProductId.键值 .如果 (取字节集长度 (字节集_bkey) < 1) 返回 (“”) .否则 .如果结束 重定义数组 (数组_akeys, 假, 取字节集长度 (字节集_bkey)) .计次循环首 (取字节集长度 (字节集_bkey), 计次) 数组_akeys [计次] = 到整数 (取字节集数据 (字节集_bkey, #字节型, 计次)) .计次循环尾 () 整数_ikeyoffset = 52 整数_iswin10 = 位与 (右移 (数组_akeys [整数_ikeyoffset + 15], 3), 1) 数组_akeys [整数_ikeyoffset + 15] = 位或 (位与 (数组_akeys [整数_ikeyoffset + 15], 247), 左移 (位与 (整数_iswin10, 2), -2)) 文本_map = “BCDFGHJKMPQRTVWXY2346789” 整数_i = 24 .判断循环首 (整数_i > -1) 整数_current = 0 整数_ix = 14 .判断循环首 (整数_ix > -1) 整数_current = 左移 (整数_current, 8) 整数_current = 数组_akeys [整数_ix + 整数_ikeyoffset + 1] + 整数_current 数组_akeys [整数_ix + 整数_ikeyoffset + 1] = 取整 (整数_current ÷ 24) 整数_current = 整数_current % 24 整数_ix = 整数_ix - 1 .判断循环尾 () 整数_i = 整数_i - 1 输出文本 = 取文本中间 (文本_map, 整数_current + 1, 1) + 输出文本 整数_last = 整数_current .判断循环尾 () .如果 (输出文本 = “BBBBBBBBBBBBBBBBBBBBBBBBB”) 返回 (“未找到产品密钥”) .否则 .如果结束 .如果 (整数_iswin10 = 1) 输出文本 = 取文本中间 (输出文本, 2, 整数_last) + “N” + 文本_删左边 (输出文本, 整数_last + 1) .否则 .如果结束 .计次循环首 (取文本长度 (输出文本) ÷ 5, 整数_格式i) 文本返回 = 文本返回 + 取文本中间 (输出文本, 5 × 整数_格式i - 4, 5) .如果真 (取文本长度 (输出文本) ÷ 5 ≠ 整数_格式i) 文本返回 = 文本返回 + “-” .如果真结束 .计次循环尾 () 返回 (文本返回) |