#include #include #include #include #include #include Local $sUniqueID = _GetHardwareID($UHID_All) $sUID =StringReplace($sUniqueID,"{","") $UID = StringReplace($sUID,"}","") $file_output = RegRead("HKEY_CURRENT_USER\Software\Protector", "license") $text = "" For $x = 1 To StringLen($file_output) $asc = Asc(StringMid($file_output, $x, 1)) $chr = Chr($asc - 128) ; shift back $text = $text & $chr Next $License = StringReplace($text,"-"&$UID,"") Global $ks[11], $key, $Actual_Key, $prekey, $preseed, $enteredkey, $keypart $enteredkey = Decode(StringReplace($License, '-', ''), 1) $seed = StringMid($enteredkey, 1, 6) $keypart = StringTrimRight($enteredkey, 4) If StringInStr($text,$UID) = true Then If StringMid(_Crypt_HashData($keypart & 'Test program v1.000', $CALG_SHA1), 3, 4) <> StringMid($enteredkey, 27, 4) Or StringLen($enteredkey) <> 30 Then MsgBox(0, 'Error', 'The key''s format is not valid or was typed incorrectly.') Exit EndIf Else exit EndIf $ks[1] = '2f9u24h9gg7j' ;~ $ks[2] = 'rgh76i433t' $ks[3] = 'NUB%F$Wt6j9' $ks[4] = 'asjU*&6e3s' $ks[5] = 'll[064e23FFj' ;~ $ks[6] = 'JKo74532EŁ""7' $ks[7] = 'Jh897%$bfeyu7)(' $ks[8] = ')8yrgT4R$%[HI' $ks[9] = 'G57^sd&90=kl%' ;~ $ks[10] = '{--08ygb2a=-l 6 Then $b -= 6 Switch $a Case 1 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) ;~ Case 2 ;~ $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 3 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 4 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 5 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) ;~ Case 6 ;~ $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 7 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 8 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) Case 9 $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) ;~ Case 10 ;~ $ks[$a] = StringMid(_Crypt_HashData($ks[$a] & StringMid($seed, $b, 1), $CALG_SHA1), 3, 2) EndSwitch Next $section = StringTrimLeft($keypart, 6) $count = 0 For $a = 1 To 20 Step 2 $count += 1 ConsoleWrite($ks[$count] & ' ' & StringMid($section, $a, 2) & @CRLF) If $ks[$count] <> '' And $ks[$count] <> StringMid($section, $a, 2) Then MsgBox(0, 'Fabricated Key!', 'This key is an invalid fake') Exit EndIf Next If StringMid(_Crypt_HashData($keypart & 'Test program v1.000', $CALG_SHA1), 3, 4) = StringMid($enteredkey, 27, 4) Then EndIf Func RawEncode($input = '', $mode = 0) Local $list[27], $num, $result For $a = 0 To 25 $list[$a] = Chr(65 + $a) Next $num = Asc($input) If $mode Then $num = Number('0x' & $input) $r = Floor(($num / 26)) If $num < 26 Then $result = 'A' & $list[$num] Else $result = $list[$r] $num -= (26 * $r) $result &= $list[$num] EndIf Return $result EndFunc ;==>RawEncode Func RawDecode($input = '', $mode = 0) Local $list[27], $num[3], $num, $result For $a = 0 To 25 $list[$a] = Chr(65 + $a) Next $num[1] = StringMid($input, 1, 1) $num[2] = StringMid($input, 2, 1) For $a = 1 To 2 For $b = 0 To 25 $location = StringInStr($list[$b], $num[$a]) If $location Then If $a = 1 Then $result += 26 * $b Else $result += $b If $mode = 0 Then $result = Chr($result) Else $result = Hex(String($result), 2) EndIf Return $result EndIf EndIf Next Next EndFunc ;==>RawDecode Func Encode($input = '', $mode = 0) For $a = 1 To StringLen($input) Local $result If $mode = 0 Then $result &= RawEncode(StringMid($input, $a, 1), 0) ElseIf $mode = 1 Then $result &= RawEncode(StringMid($input, $a, 2), 1) $a += 1 EndIf Next Return $result EndFunc ;==>Encode Func Decode($input = '', $mode = 0) Local $result For $a = 1 To StringLen($input) Step +2 $result &= RawDecode(StringMid($input, $a, 2), $mode) Next Return $result EndFunc ;==>Decode Func _GetHardwareID($iFlags = Default, $fIs64Bit = Default) Local $sBit = '' If @AutoItX64 Then $sBit = '64' EndIf If Not ($fIs64Bit = Default) Then $sBit = '' ; Reset to 32-bit. If $fIs64Bit And @AutoItX64 Then $sBit = '64' ; Use 64-bit if $fIs64Bit is True and AutoIt is a 64-bit process. EndIf EndIf If $iFlags = Default Then $iFlags = $UHID_MB EndIf Local $aSystem = ['Identifier', 'VideoBiosDate', 'VideoBiosVersion'], _ $iResult = 0, _ $sHKLM = 'HKEY_LOCAL_MACHINE' & $sBit, $sOutput = '', $sText = '' For $i = 0 To UBound($aSystem) - 1 $sOutput &= RegRead($sHKLM & '\HARDWARE\DESCRIPTION\System\', $aSystem[$i]) Next $sOutput &= @CPUArch $sOutput = StringStripWS($sOutput, $STR_STRIPALL) If BitAND($iFlags, $UHID_BIOS) Then Local $aBIOS = ['BaseBoardManufacturer', 'BaseBoardProduct', 'BaseBoardVersion', 'BIOSVendor', 'BIOSReleaseDate'] $sText = '' For $i = 0 To UBound($aBIOS) - 1 $sText &= RegRead($sHKLM & '\HARDWARE\DESCRIPTION\System\BIOS\', $aBIOS[$i]) Next $sText = StringStripWS($sText, $STR_STRIPALL) If $sText Then $iResult += $UHID_BIOS $sOutput &= $sText EndIf EndIf If BitAND($iFlags, $UHID_CPU) Then Local $aProcessor = ['ProcessorNameString', '~MHz', 'Identifier', 'VendorIdentifier'] $sText = '' For $i = 0 To UBound($aProcessor) - 1 $sText &= RegRead($sHKLM & '\HARDWARE\DESCRIPTION\System\CentralProcessor\0\', $aProcessor[$i]) Next For $i = 0 To UBound($aProcessor) - 1 $sText &= RegRead($sHKLM & '\HARDWARE\DESCRIPTION\System\CentralProcessor\1\', $aProcessor[$i]) Next $sText = StringStripWS($sText, $STR_STRIPALL) If $sText Then $iResult += $UHID_CPU $sOutput &= $sText EndIf EndIf If BitAND($iFlags, $UHID_HDD) Then $sText = '' Local $aDrives = DriveGetDrive('FIXED') If @error = 0 Then For $i = 1 To $aDrives[0] $sText &= DriveGetSerial($aDrives[$i]) Next EndIf $sText = StringStripWS($sText, $STR_STRIPALL) If $sText Then $iResult += $UHID_HDD $sOutput &= $sText EndIf EndIf Local $sHash = StringTrimLeft(_Crypt_HashData($sOutput, $CALG_MD5), StringLen('0x')) If $sHash = '' Then Return SetError(4, 0, '') EndIf Return SetExtended($iResult, StringRegExpReplace($sHash, '([[:xdigit:]]{8})([[:xdigit:]]{4})([[:xdigit:]]{4})([[:xdigit:]]{4})([[:xdigit:]]{12})', '{\1-\2-\3-\4-\5}')) EndFunc ;==>_GetHardwareID ;START OF YOUR SCRIPT MsgBox(0,"YEY","REGISTERED!") ;END OF YOUR SCRIPT