找回密码
 加入
搜索
查看: 2346|回复: 4

[系统综合] 【已解决】请问如何提取windows系统密钥(序列号)的,谢谢

[复制链接]
发表于 2012-7-31 17:23:15 | 显示全部楼层 |阅读模式
本帖最后由 freedayfzc 于 2012-8-1 11:07 编辑

有搜索过之前的各位大师的帖子,但是提取出来的序列号是错误的,哪位能帮忙下分享下可用的autoit脚本。
发表于 2012-7-31 18:18:44 | 显示全部楼层
Local $Key = IniRead(@SystemDir & '\$winnt$.inf', 'UserData', 'ProductKey', '非XP系统')
MsgBox(0, 0, $key)
发表于 2012-7-31 20:53:53 | 显示全部楼层

$key = RegRead("HKLM\SOFTWARE\MICROSOFT\Windows NT\CurrentVersion", "DigitalProductId")
MsgBox(0,"",GetXPKey($key))
Func GetXPKey($binaryDPID)
        Local $bKey[15],$sKey[29],$Digits[24],$Value = 0
        Local $hi = 0,$n = 0,$i = 0,$dlen = 29,$slen = 15
        Local $Result
        $Digits = StringSplit("BCDFGHJKMPQRTVWXY2346789", "")
        ;$binaryDPID = stringmid($binaryDPID, 105, 30) ;旧版用这个
        $binaryDPID = stringmid($binaryDPID, 107, 30)
        For $i = 1 to 29 step 2
                $bKey[int($i / 2)] = dec(stringmid($binaryDPID, $i, 2))
        next
        For $i = $dlen - 1 To 0 Step -1
                If Mod(($i + 1), 6) = 0 Then
                        $sKey[$i] = "-"
                Else
                        $hi = 0
                        For $n = $slen - 1 To 0 Step -1
                                $Value = Bitor(bitshift($hi, -8), $bKey[$n])
                                $bKey[$n] = int($Value / 24)
                                $hi = mod($Value, 24)
                        Next
                        $sKey[$i] = $Digits[$hi + 1]
                EndIf
        Next
        For $i = 0 To 28
                $Result = $Result & $sKey[$i]
        Next
        Return $Result
EndFunc   ;==>GetXPKey

早年前收藏的,出自谁手忘记了。
 楼主| 发表于 2012-8-1 10:51:58 | 显示全部楼层
太感谢了,可以用
发表于 2017-4-2 10:47:04 | 显示全部楼层
感谢分享,可用
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-4-25 14:01 , Processed in 0.075850 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表